3

我正在尝试执行 shell 命令,然后使用 shell 脚本将输出保存到变量中。所以我使用这样的反引号:

out=`ls -l`
print $out

该代码工作正常,我可以将它用于任何其他 shell 命令,但是当我尝试执行“python --version”来检查 python 版本时。我有奇怪的问题。反引号不适用于“python --version”命令,而它可以与任何其他命令一起正常工作,它将输出打印到屏幕上,并且不会将任何内容保存到变量 $out。所以如果我这样做:

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

结果:

Python 2.6.1
my python version is 

我也尝试使用 $() 替换反引号,但没有运气。任何的想法 ?

4

1 回答 1

10

等号前有一个空格:

out =`python --version`

应该:

out=`python --version`

更新

python还将版本字符串输出到stderr,因此您需要将其重定向到stdout:

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