得到了#!/usr/bin/expect -f
和#!/bin/bash
;現在我得到了錯誤:期望語法錯誤./auto.sh ./auto.sh:第12行:意外令牌附近的語法錯誤}} ./auto.sh:line 12:`}'
./autom.sh: line 7: syntax error near unexpected token `}'
./autom.sh: line 7: `"*\#" { send "cd /var-tmp"; send "./scmd.sh -tmp /var/tmp -plugins /var/tmp/plugins -dmore \r"; }'
代碼:
set i 0
IP_FILE="./hst.txt"
for i in `cat $IP_FILE`; do
sapwn ssh "@$i"
expect {
"*\#" { send "cd /var-tmp"; send "./scmd.sh -tmp /var/tmp -plugins /var/tmp/plugins -dmore \r"; }
"*\#" { puts "ejecucion exitosa" }
}
EOD
done>>logfile.txt`
刪除'#在/ usr/bin中/預期'因爲只有一個bash是必需的 – anubhava
你的問題是令人困惑的格式化;我希望我改進了它。我將'。/ utom.sh'改爲'。/ autom.sh' - 在發佈時名稱如何切換? (另外,標題引用'./ auto.sh',但是body引用'./ autom.sh' - 請保持一致!)你應該修正'spawn'的拼寫(它不是'sapwn')。你有一些'expect'的代碼僞裝成shell腳本;這是導致錯誤。你忘了在線路上的某處運行預期嗎?也許'在'do'之後和'sapwn'或'spawn'之前預期<< EOD'? –