sys.exit(myString)并不意味着“返回此字符串”。如果您将字符串传递给
sys.exit,
sys.exit则会将该字符串视为错误消息,并将该字符串写入
stderr。对于整个程序,最接近返回值的概念是其退出状态,该状态必须为整数。
如果要捕获写入stderr的输出,可以执行以下操作
python yourscript 2> return_file
您可以在bash脚本中执行类似的操作
output=$((your command here) 2> &1)
但是,不能保证仅捕获传递给的值
sys.exit。写入stderr的所有其他内容也将被捕获,其中可能包括记录输出或堆栈跟踪。
例:
test.py
print "something"exit('ohoh')吨
va=$(python test.py 2>&1) mkdir $va
bash t.sh
编辑
不知道为什么,但是在那种情况下,我会写一个主脚本和另外两个脚本…除非确实需要,否则将python和bash混合是没有意义的。
import script1import script2if __name__ == '__main__': filename = script1.run(sys.args) script2.run(filename)



