例如,我有一个命令commandA,并想在执行commandA后获得退出代码。预计commandA将失败,因此我们应该得到的退出代码是1。
如果我在终端中输入
我尝试使用
如果我在终端中输入
commandA;echo $?
,屏幕上会显示1。但是,当我用Python做时,出现了问题。我尝试使用
os.system(commandA)
或subprocess.call(commandA.split())
调用commandA,然后调用os.popen('echo $?').read()
,结果为0。
os.popen('commandA;echo $?').read()
给了我一个正确的结果,但是commandA的过程没有显示在屏幕上,这就是我不希望发生的事情。
$ python -c "import os; os.system('echo test; false; echo $?')"
输出结果为:test 0。$ python -c "import os; os.system('echo test; false; echo \$?')"
输出结果为:test 1。 - eel ghEEz