-2

シェルスクリプト:Hello.sh

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

Python内からHello.shを呼び出し、変数「name」を非対話的に入力したいと思います。どのようにそれを行うことができますか?

4

2 に答える 2

3

サブプロセスでできるはずです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")
于 2013-03-21T15:20:21.127 に答える
1

パイプの+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
于 2013-03-21T15:25:35.477 に答える