2

我正在尝试编写一个 shell 脚本来运行一个接受一些原始输入的 python 文件。python脚本基本上是这样的:

def main():
    name=raw_input("What's your name?")
    print "Hello, "+name
main()

我希望 shell 脚本运行脚本并自动向其中提供输入。我已经看到很多方法可以从 python 函数返回的内容中获取 shell 输入,或者如何使用输入从 python 运行 shell,但不是这样。基本上,我只想做一些事情:

python hello.py
#  give the python script some input here
#  then continue on with the shell script.
4

2 回答 2

8

你的意思是这样的:

python hello.py <<EOF
Matt
EOF

这被称为bash HERE 文档

于 2013-02-19T19:01:05.283 回答
4

提供原始输入确实没有比sys.stdin. 它也是跨平台的。

import sys
print "Hello {0}!".format(sys.stdin.read())

然后

echo "John" | python hello.py # From the shell
python hello.py < john.txt # From a file, maybe containing "John"
于 2013-02-19T19:08:41.180 回答