我正在尝试编写一个python脚本,它将为我执行一个bash命令行程序。该程序要求用户输入两次,我希望我的脚本每次都自动输入“1”。
我听说过这样的事情:
os.system("program < prepared_input")
如何编写prepared_input?感谢。
答案 0 :(得分:3)
使用两行创建文件:
1
1
在bash脚本中使用read
来获取输入:
<强>演示:强>
$ cat abc
1
1
$ cat so.sh
#!/bin/bash
read data
echo "You entered $data"
read data
echo "Now you entered $data"
$ bash so.sh <abc
You entered 1
Now you entered 1
Python:
>>> import os
>>> os.system("bash so.sh < abc")
You entered 1
Now you entered 1
0
答案 1 :(得分:1)
我想让你的例子成功:
prepared_input = "<input goes here>"
os.system("program < {0}".format(prepared_input))
但取决于你想做什么,几乎肯定有更好的方法来实现它。如果您向我们提供有关您正在做什么以及为什么做的更多信息,我们可以建议一些替代方案。
答案 2 :(得分:0)
使用pexpect对你有用......
以下是解决方案 - http://pypi.python.org/pypi/pexpect/