从Python获取退出状态代码

时间:2016-09-14 12:20:03

标签: shell exit

我有一个python脚本会执行一些操作,根据结果,将退出代码0(可以)或1(不好)。

我想捕获此结果,将其存储到变量中并通过UDP发送。这不能在python脚本(要求)中完成。

所以,让我们说我的脚本是这样的:

import sys
# Do some stuff 
sys.exit(0) # or sys.exit(1) 

我使用python script.py运行。

如何获取此退出状态代码(0或1)。

我尝试回显$errorlevel,但它只打印一个空白行。另请尝试使用exit(0)代替sys.exit()(请参阅here)以及其他一些不成功的尝试。

3 个答案:

答案 0 :(得分:5)

根据您的回答,您使用zsh

test.py

import sys
sys.exit(12)

在你的控制台中

python test.py
RC=$?
echo "Exit code $RC"
program_to_send $RC

答案 1 :(得分:2)

这是一个脚本问题而不是python问题,但在Bash shell中你使用$?并且由于任何命令都会改变$?,保存副本通常是一个好主意。

python script.py  
RC=$?

echo $RC
[ $RC == 0 ] && echo Success || echo Failed
# replace above lines by whatever you need to send $RC via UDP ...

如果它是Windows CMD脚本问题,您可能应该使用相应的标签重新发布。 (我不再做Windoze了,谢谢$ DEITY)

答案 2 :(得分:-1)

这应该通过捕获异常和使用记录器以正确的方式完成。

import logging, time

logging.basicConfig(level=logging.DEBUG, filename='/path/to/file/errorlog.log')

try:
    #MySQL Connection
except MySQLdb.Error as e:
    errortime = time.strftime('%Y-%m-%dT%H:%M:%S')
    logging.exception(errortime)
    raise os._exit(0)