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

时间:2014-07-22 06:31:33

标签: python subprocess

我是Python的新手,试图找到一种方法来设置几个shell env变量,然后执行一个shell脚本。

subprocess模块是否能够发送多个shell命令并捕获输出?

这对我来说并不清楚,因为每个spawn将导致一个新的shell线程,它不具有前一个env变量。

另外,使用popencheck_output是否合适?

基本上我想做的是:

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

check_status.sh必须定义上述env变量才能正常运行,并且它也必须是shell脚本(即我无法将check_status.sh转换为python)。

感谢您的评论和意见。

1 个答案:

答案 0 :(得分:0)

subprocess每次都会创建一个帖子。您可以使用popen执行shell命令。使用分号作为分隔符。例如os.popen('setenv a b;set env c d')

希望它有所帮助。