[英]how to accomplish the multiple bash script command in python script
当我在Ubuntu终端中运行这两个命令时,我得到一个变量值
1.源script.sh
2. echo $ varname
其中scripts.sh包含要定义的变量,然后在步骤2中用echo调用该变量。
如何在python脚本中完成相同操作:我尝试了以下代码
#!/bin/bash
import subprocess
command=['bash','-c','source ia_servers']
cmdout = subprocess.Popen(command, stdout=subprocess.PIPE)
filtercommand=['bash','-c','echo $IA_SRV_cs68_64']
filtered = subprocess.Popen(filtercommand, stdin=cmdout.stdout, stdout=subprocess.PIPE)
output, err = filtered.communicate()
print(output)
描述:我首先使用子流程运行步骤1,并将其结果作为输入输入到步骤2 。 我知道第一步不会有任何输出。 但是我如何在python中完成此操作。
还是我遵循错误的方式。 如果还有其他方法可以解决此问题
首要目标:
我的目的是让在bash脚本中设置为我的python代码的变量值。
每个子进程调用都会产生自己的shell实例。 因此,退出外壳后,第一个子进程中在source中设置的任何外壳变量将立即丢失。 访问这些变量的唯一方法是在调用source时从同一子流程调用立即打印它们:
import subprocess
filtercommand=['bash','-c','source ia_servers; echo $IA_SRV_cs68_64']
filtered = subprocess.Popen(filtercommand, stdout=subprocess.PIPE)
output, err = filtered.communicate()
print(output)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.