通过Bash Shell输入Python脚本

时间:2019-04-26 18:35:12

标签: python bash python-2.7

我有一个从bash脚本调用的python脚本,这个bash脚本从cron调用了

#!/bin/bash
set -o errexit
set -o xtrace
echo "Verify/Update Firmware"
/usr/bin/python -u /usr/bin/Update.py

现在,当此python运行时,它要求一些输入(从键盘输入),但我无法捕获它。在这种情况下,我的python如何获得输入?

Python脚本如下所示

ip = raw_input('Enter IP for Switch')
tn = telnetlib.Telnet ( ip, 23, 600 ) 

2 个答案:

答案 0 :(得分:0)

要为bash脚本提供命令行参数,可以使用$ 1,$ 2,$ 3等。此处的教程对此进行了讨论:http://linuxcommand.org/lc3_wss0120.php

对于python部分,您可以使用argparse之类的工具很好地完成此操作。这里也有大量的教程。

答案 1 :(得分:0)

对于单行输入,使用此:

echo "input" | command arg1 arg2

对于多行,将预期的输入写入文件,然后重定向输入:

command arg1 arg2 < inputfile

根据许多细节,不能保证它能正常工作。

请考虑在不阅读程序要求的情况下盲目输入的风险。

有关更复杂的解决方案,请检查expect实用程序。