3

シェルコマンドを実行してから、シェルスクリプトを使用して出力を変数に保存しようとしています。だから私はこのようなバックティックを使用します:

out=`ls -l`
print $out

そのコードは正常に機能しており、他のシェルコマンドにも使用できますが、「python --version」を実行してpythonのバージョンを確認しようとすると. 私は奇妙な問題を抱えています。"python --version" コマンドではバッククォートが機能しませんが、他のコマンドでは正常に機能します。出力が画面に出力され、変数 $out には何も保存されません。もしそうなら:

out =`python --version`
print "my python version is "$out

結果:

Python 2.6.1
my python version is 

また、 $() を使用して backtick を置き換えようとしましたが、うまくいきませんでした。何か案が ?

4

1 に答える 1

10

等号の前にスペースがあります。

out =`python --version`

次のようにする必要があります。

out=`python --version`

アップデート

また、python はバージョン文字列を stderr に出力するため、それを stdout にリダイレクトする必要があります。

out=`python --version 2>&1`
于 2012-05-07T18:50:34.287 に答える