我有一个问题,不知道该怎么问。我将尽力解释。
我必须使用bash脚本自动执行安装过程。在进程的中间,我调用了一个名为configure.py的Python脚本。此脚本需要输入终端。
有没有办法通过传递等待的终端参数来调用脚本?
Determining the layout of your Qt installation...
This is the GPL version of PyQt 4.11.4 (licensed under the GNU General Public
License) for Python 2.7.9 on linux2.
Type 'L' to view the license.
Type 'yes' to accept the terms of the license.
Type 'no' to decline the terms of the license.
Do you accept the terms of the license? yes
非常感谢你。
答案 0 :(得分:3)
虽然一个特别困难的脚本可能会显然从终端而不是stdin
读取一些魔法,但是你可能只是使用bash管道语法管道到脚本:
echo yes | python configure.py
或者如果您愿意,可以使用"单个命令"版本使用bash
字符串语法:
python configure.py <<<yes
最后,如果您需要提供多行输入,可能最简单的方法是使用bash的heredoc语法:
# Remove the single quotes if you need to do variable interpolation in the
# heredoc; the delimiter ENDOFINPUT is arbitrary, it just has to be used
# (with or without single quotes) after the `<<` operator, and w/o quotes
# at the end of the input to terminate the heredoc
python configure.py <<'ENDOFINPUT'
yes
anotherresponse
andyetanother
ENDOFINPUT
答案 1 :(得分:1)
PyQt配置脚本有一个选项,可以自动确认接受许可证:
python configure.py --confirm-license
由于PyQt安装过程中没有其他部分需要用户输入,这应该就是您所需要的。有关详细信息,请参阅PyQt文档中的Installing PyQt4。
答案 2 :(得分:0)
您可以使用pip运算符提供输入 (感谢ShadowRanger) 例如:
echo "yes" | command
echo "pass" | ssh user@pass