捕获Python进程';unixshell中的退出状态

捕获Python进程';unixshell中的退出状态,python,linux,unix,terminal,return-value,Python,Linux,Unix,Terminal,Return Value,我试图弄清楚如何在*nix终端中从python脚本捕获返回值。我正在使用Linux 因此,为了清楚起见,我有一个转换器脚本,您可以在其中向Python脚本传递一个数字(作为字符串),它使用sys.exit(status\u number)键入、转换并返回一个数字。我知道我正在利用退货状态,但这是我希望能够做到的事情 我唯一搞不清楚的是如何在变量中捕获返回状态。我知道人们可以做retVal=4,但是,人们不能期望像retVal=python foo.py 111这样的工作 我怎样才能做到这一点?1

我试图弄清楚如何在*nix终端中从python脚本捕获返回值。我正在使用Linux

因此,为了清楚起见,我有一个转换器脚本,您可以在其中向Python脚本传递一个数字(作为字符串),它使用
sys.exit(status\u number)
键入、转换并返回一个数字。我知道我正在利用退货状态,但这是我希望能够做到的事情

我唯一搞不清楚的是如何在变量中捕获返回状态。我知道人们可以做
retVal=4
,但是,人们不能期望像
retVal=python foo.py 111
这样的工作


我怎样才能做到这一点?

1。捕获退出状态

python foo.py 111
retVal=$?
2。捕获退出状态和标准输出

output=$(python foo.py 111)
retVal=$?

它捕获标准输出,而不是退出状态。我可以执行sys.stdout。Thanks@Dylan,这与预期和记录的行为非常相反。尝试
python-c'importsys;系统出口(3)';echo$?
用于演示。我想我只需要使用sys.stdout.print(var)就可以了。不可能通过shell return code.FYI返回大于127的整数,
retVal=python foo.py 111
使用参数
111
执行
foo.py
时,将环境
retVal
设置为值
python
。。。因此,它实际上是有效的shell语法,即使它不是您真正想要的语法。:)@查理·达菲:我从来没有说过“无效”;相反,我说的是“它不起作用(出于我的目的)”,或者更确切地说是“人们不能期望它……起作用。”:)当然——我并不是想把话塞进你的嘴里,只是为了提供一个兴趣点。人们通常不知道在同一行上的命令前面的k=v对实际上是做什么的。@CharlesDuffy好极了!我道歉;一、 也许,他回答得有点太严厉了。老实说,我不知道它做了什么,但我知道它不符合我的目的。不过,这是一个很好的信息片段。我才“李露星”一个月左右,所以每一点知识都是有用的。