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

如何使用Bash命令提取Python脚本中定义的变量res的取值

解决方案

Python进程内部的自定义变量不会自动同步到父级Bash shell的环境变量中,你原写法里的echo $res只能读取Bash本身的环境变量,自然无法获取Python脚本内的res值。

方案1:修改Python脚本(最推荐,适配Airflow场景)

  • 在run_sql.py的末尾添加一行代码:print(res),确保脚本执行完会把res的值输出到标准输出流
  • 调整Bash命令直接捕获标准输出即可,写法如下:
res=$(python3 /services/run_sql.py -dev /sql_path/audit.sql)
# 此时bash变量$res的值就是4

如果是在Airflow的BashOperator中使用,只需开启do_xcom_push=True参数,该命令的标准输出会自动推送到XCom中,下游任务可直接通过XCom读取到4这个值,示例Operator写法:

bash_task = BashOperator(
    task_id="get_res_value",
    bash_command="python3 /services/run_sql.py -dev /sql_path/audit.sql",
    do_xcom_push=True,
    dag=dag
)

方案2:无需修改原Python脚本

如果无权修改run_sql.py,可以直接通过Python一行命令加载脚本并打印变量值,命令如下:

res=$(python3 -c "exec(open('/services/run_sql.py').read());print(res)")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:36:03