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

如何在Python脚本中执行config.sh并读取bash变量x的值?

实现方法

首先,你的现有脚本如下:

x.sh

#!/bin/bash
echo nir

config.sh

#!/bin/bash
x=$(/home/nir/x.sh)

要在Python中读取config.sh里的变量x,核心是让bash先加载config.sh(用source命令,即.),再输出变量值,最后用Python捕获这个输出。修改后的script.py如下:

script.py

#!/usr/bin/env python3
import subprocess

# 执行config.sh并读取变量x到y
# 先source加载config.sh,再输出x的值
cmd_output = subprocess.run(
    ["bash", "-c", ". /home/nir/config.sh && echo $x"],
    capture_output=True,
    text=True
)
y = cmd_output.stdout.strip()  # 去除输出的换行符
print(y)

原理说明

直接执行config.sh只会在子shell中定义变量x,父进程(Python)无法获取。而用bash -c '. /home/nir/config.sh && echo $x'的方式,会让bash在同一个会话中加载config.sh,此时变量x生效,紧接着输出它的值,Python通过subprocess.run捕获这个输出,就能拿到变量值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:05:28