使用python以非交互方式输入shell脚本变量值

2024-03-28 14:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

外壳脚本: 你好.sh在

#!/bin/bash
echo "Enter your name: "
read name
echo "Hello $name"

我想调用你好.sh在python中,以非交互方式填充变量“name”。怎么能做到呢?在


Tags: nameechobashhelloreadyourbinsh
2条回答

您应该能够使用子流程Popen.communicate

from subprocess import Popen,PIPE
p = Popen(['bash','./Hello.sh'],stdin=PIPE,stderr=PIPE,stdout=PIPE)
stdout_data,stderr_data = p.communicate("Hello World!\n")

pipes上加1。更“空壳化”的方法是:

import subprocess

the_name = 'the_name'
myproc = subprocess.Popen(['echo %s | bash Hello.sh' % the_name], stdin = subprocess.PIPE, stdout = subprocess.PIPE, shell=True)
out, err = myproc.communicate()

print out

相关问题 更多 >