sys.exit(myString)
并不意味着“返回此字符串”。如果您将字符串传递给sys.exit
,sys.exit
则会将该字符串视为错误消息,并将该字符串写入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 script1
import script2
if __name__ == '__main__':
filename = script1.run(sys.args)
script2.run(filename)