2011-11-04 64 views
0

我下載了python和bash中的一些腳本,提示用戶輸入命令行。由於我經常運行這些腳本,因此我想自動將輸入提供給程序。我不想修改腳本。有沒有辦法做到這一點,而無需修改原始代碼?Python和Bash:如何自動化用戶輸入?

[更新]感謝EnabrenTane的建議,它似乎工作得很好,直到我得到了一條線,讀取password = getpass.getpass('password: ')。它抱怨以下幾點:

File "/usr/lib/python2.4/getpass.py", line 29, in unix_getpass 
old = termios.tcgetattr(fd)  # a copy to save 
termios.error: (25, 'Inappropriate ioctl for device') 

任何方式來解決?

+2

http://sourceforge.net/projects/expect/ –

+0

爲什麼你會期望輸入被打印兩次? – kindall

+0

kindall:因爲第一個建議@ http://www.linuxquestions.org/questions/programming-9/send-automatic-input-to-a-script-called-by-another-script-in-bash-programming -164502 / – PJx

回答

0

由於密碼要求,我最終使用pexpect,這是一個自動化用戶輸入的python模塊。

3

像這樣的慶典:$ ./python_script < input.txt

編輯: 另外,您可以編寫腳本採取ARGV作爲文件名從閱讀。您可以重新打開STDIN到文件,而不必更改任何其他行。

1

由於via stdin中的響應:

cat answers | yourscript.py

相關問題