您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将Python脚本的返回值存储在bash脚本中

将Python脚本的返回值存储在bash脚本中

sys.exit(myString)并不意味着“返回此字符串”。如果您将字符串传递给sys.exitsys.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 script1
import script2

if __name__ == '__main__':
    filename = script1.run(sys.args)
    script2.run(filename)
python 2022/1/1 18:37:39 有249人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶