这是我运行 myscript.sh
中设置的bash脚本的方法#!/bin/bash
import subprocess
child = subprocess.Popen(['bash', '-c', '/bin/bash myscript.sh'], stdout = subprocess.PIPE)
output=child.communicate()
print(output)
myscript.sh
为什么我这样做是因为我必须运行的bash脚本没有export命令所以我在这里回应。代码吼叫。我知道回声不会设置环境变量,但我只想回显它并获取值,以便回显而不是导出。
#!/bin/bash
source ia_servers
echo $IA_SRV_cs68_64
其中, $ IA_SRV_cs68_64
这是列出变量值的ia_servers文件 它看起来像这样
IA_SRV_cs68_64="ds1 ds2 ds3 ds5 "
这就是变量的含义。设置中的许多其他变量因为时间过长而被淘汰。
TESTED在终端上运作良好:
打印所需的值集
问题: 虽然 myscript.sh 正在工作并打印变量。我想要的是我不想创建一个单独的文件,在那里写一个bash脚本来回显myscript.sh中的变量,而是在python中写它。
我如何在python中完成它而不是制作它 脚本文件并运行它。
答案 0 :(得分:0)
这是运行任何类型的脚本或程序的通用方法,其中程序输入嵌入在Python脚本中。
import subprocess
scriptres = subprocess.Popen("/bin/bash",
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate(r'''
# your bash script here
ls
pwd
source whatever
echo $SOMETHING
''')
script_stdout = scriptres[0]
script_stderr = scriptres[1]
答案 1 :(得分:0)
$postedTime = isset($words[6]) && !empty($words[6]) ? $words[6] : '';