You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Python脚本sys.exit返回状态码并在Bash命令中使用

问题原因

你之前的写法不生效有两个核心原因:

  1. 反引号`myscript.py`属于命令替换,只会提取脚本的标准输出内容作为参数值,脚本的退出码不会直接传递给外层的$?
  2. 把--returncode=$?写在同一行命令中时,$?读取的是执行当前command命令之前的上一条命令的退出码,并非刚执行的myscript.py的退出码

解决方法

你需要先单独执行Python脚本,分别捕获它的标准输出和退出码,再传入后续命令中,步骤如下:

  1. 执行脚本并捕获输出、退出码
# 捕获脚本标准输出存入message变量
message=$(myscript.py)
# 必须紧跟脚本执行命令,捕获脚本的退出码存入自定义变量
py_exit_code=$?

注意:$?永远读取的是上一条执行完成的命令的退出码,中间不要插入任何其他命令,否则退出码会被覆盖。如果要写在同一行可以用;分隔:message=$(myscript.py); py_exit_code=$?

  1. 将捕获到的变量传入后续命令
command --host=xxx --service="xxx" --message="$message" -s "ip" -u "user" -p "pass" --returncode=$py_exit_code

内容的提问来源于stack exchange,提问作者aldegalan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 07:24:04