我有一个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)以及其他一些不成功的尝试。
答案 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)