0
這是我期待的腳本,bash腳本調用:登錄到sudo的指望失敗 - BASH
1 #!/usr/bin/expect -f
2
3 set timeout 1
4 set user [lindex $argv 0]
5 set pw [lindex $argv 1]
6
7 spawn ssh [email protected]
8 expect "$"
9 send -- "cd /opt/Data/\r"
10 expect "$"
11 send -- "sudo su runtime\r"
12 expect "*?assword for*"
13 send -- "$pw\r"
14 expect "$"
15 send -- "./run.sh\r"
16 expect "$"
17 send -- "exit\r";
18 send -- "exit\r";
19 exit
我的結果是:
[email protected]:~/Documents/scripts$ ./bashscript
Enter your web password:
spawn ssh [email protected]
Last login: Tue Dec 10 11:10:37 2013 from [email protected]
[[email protected] ~]$ cd /opt/Data/
[[email protected] /opt/Data]$ sudo su runtime
[sudo] password for user: [email protected]:~/Documents/scripts$
通知的最後一行,我不是確定爲什麼密碼沒有通過。有任何想法嗎?
嘗試:須藤-S的-S(標準輸入)選項導致須藤從 讀取密碼標準輸入,而不是終端設備。 – BaBL86
在第12行,你確定這是你所期望的嗎?你可以嘗試:期望「*?密碼」 – user2196728
在開發預期腳本時,始終使用'exp_internal 1'。預計會告訴你模式是否匹配。 –