从Python脚本设置环境变量并运行Shell脚本

2 投票
1 回答
777 浏览
提问于 2025-04-18 14:13

我刚开始学Python,想找个方法来设置几个环境变量,然后执行一个shell脚本。

请问subprocess模块能否发送多个shell命令并捕获输出呢?

我不太明白,因为每次启动一个新的进程都会产生一个新的shell线程,这个线程不会继承之前的环境变量。

另外,使用popen或者check_output合适吗?

我基本上想做的是:

$ setenv a b
$ setenv c d
$ setenv e f
$ check_status.sh > log.log
$ grep "pattern" log.log

其中check_status.sh必须定义上述环境变量才能正常运行,而且它也必须是一个shell脚本(也就是说,我不能把check_status.sh转换成Python代码)。

期待你们的评论和建议。

相关问题:

1 个回答

0

subprocess 每次会创建一个线程。你可以用 popen 来执行 shell 命令。用分号作为命令之间的分隔符。例如,你可以这样写:os.popen('setenv a b;set env c d')

希望这对你有帮助。

撰写回答