我有一个从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 )
答案 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
实用程序。