得到了#!/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'? –