Pythonスクリプトの戻り値をbashスクリプトに格納する
質問
bashスクリプトからpythonスクリプトを実行し、pythonスクリプトの出力を変数に格納したいのですが、どうすればよいでしょうか。
私のpythonスクリプトでは、私はいくつかのものを画面に印刷し、最後に私は文字列を返します。
sys.exit(myString)
bashスクリプトで、以下のようにしました。
outputString=`python myPythonScript arg1 arg2 arg3 `
しかし、その後に
outputString
の値をチェックすると
echo $outputString
Pythonスクリプトが画面に出力していたものはすべて取得できましたが
ではなく
戻り値
myString
!
どうすればいいのでしょうか?
EDIT: Pythonスクリプトによって作成されたファイルがどこにあるか教えてくれるから、文字列が必要なんだ。私は次のようなことをしたいのです。
fileLocation=`python myPythonScript1 arg1 arg2 arg1`
python myPythonScript2 $fileLocation
どのように解決するのですか?
sys.exit(myString)
は、quot;この文字列を返す"という意味ではない。もし、文字列を
sys.exit
,
sys.exit
はその文字列をエラーメッセージとみなし、その文字列を
stderr
. プログラム全体の戻り値に最も近い概念は、その
終了ステータス
で、これは整数でなければなりません。
標準エラー出力に書き込まれる出力をキャプチャしたい場合。 のようなことができます。
python yourscript 2> return_file
bashスクリプトでこのようなことができます。
output=$((your command here) 2> &1)
に渡された値のみを捕捉することは保証されません。
sys.exit
に渡された値だけを捕らえることを保証するものではありません。標準エラー出力に書き込まれた他のすべてのものは、ロギング出力やスタックトレースも含めてキャプチャされます。
の例です。
test.py
print "something"
exit('ohoh')
t.sh
va=$(python test.py 2>&1)
mkdir $va
bash t.sh
編集
なぜかわかりませんが、その場合、メインスクリプトと他の2つのスクリプトを書くことになります...。Pythonとbashを混ぜるのは、本当に必要なとき以外は無意味です。
import script1
import script2
if __name__ == '__main__':
filename = script1.run(sys.args)
script2.run(filename)
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] Bashで文字列変数を連結する方法
-
[解決済み] Bash prints リテラルの改行をエコーする \n
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み】Bashでファイル名と拡張子を抽出する。
-
[解決済み】Bash関数の戻り値
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] 新しいpip backtrackingの実行時問題の解決