【发布时间】:2017-02-13 18:54:17
【问题描述】:
我有一个要求用户输入的 shell 脚本。考虑下面的例子
Test.sh
#!/bin/bash
echo -n "Enter name > "
read text
echo "You entered: $text"
echo -n "Enter age > "
read text
echo "You entered: $text"
echo -n "Enter location > "
read text
echo "You entered: $text"
脚本执行:
sh test.sh
Enter name> abc
You entered: abc
Enter age > 35
You entered: 35
Enter location > prop
You entered: prop
现在我在 python 程序中调用了这个脚本。我正在使用子流程模块执行此操作。据我所知,子流程模块创建了一个新流程。问题是当我执行 python 脚本时,我无法将参数传递给底层的 shell 脚本,并且 scipt 处于 hault 阶段。可以指出我做错了什么
python 脚本(CHECK.PY):
import subprocess, shlex
cmd = "sh test.sh"
proc = subprocess.Popen(shlex.split(cmd), stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout,stderr = proc.communicate()
print stdout
Python 执行:check.py
python check.py
【问题讨论】:
-
我们可以使用 OS 模块执行相同的操作,但我正在尝试使用子进程模块来实现
标签: python python-2.7 shell python-3.x