繁体   English   中英

如何在python脚本中完成多bash脚本命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM