在Python中获取上一个命令的退出代码?

时间:2014-07-14 16:58:26

标签: python bash shell

是否可以在python中获取在shell上运行的上一个命令的退出代码?

我想编写一个脚本,它将返回当前设置的相同错误代码(假设python命令成功)。这相当于在bash中做这样的事情:

#!/bin/bash
err=$?

# Do something...

exit $err

如果可能的话,我想避免将其作为参数传递。例如:

python script.py $?

2 个答案:

答案 0 :(得分:2)

恕我直言,这是不可能的。由bash启动的命令无法访问shell变量,也无法访问shell本身。它只能知道:

  • 环境中存在的所有变量(但$?不是)
  • shell的pid,并通过它的shell路径

但我不知道任何bash API可以获得更多。

答案 1 :(得分:2)

我想说你的解决方案(将“上一个命令”和Python脚本包装在跟踪返回码的shell脚本中)是可行的方法:

#!/bin/bash
first_command
ERR=$?
python second_script.py
exit $ERR

Python脚本将更具可重用性,因为它不必依赖任何有关其环境的假设。

为什么这种包装解决方案不适合您的情况?