我有一个包含 IP 地址、文件位置和密码的文件。我不能使用 ssh 密钥身份验证,这就是为什么我只能在 bash 脚本中使用期望。该文件包含以下信息,以空格分隔:
ip位置密码
ip位置密码
ETC
我的脚本是:
VAR=$(expect -c "
set fid [open "file.conf" w]
set content [read $fid]
close $fid
set records [split $content "\n"]
foreach rec $records {
set fields [split $rec]
lassign $fields\ ip location password
puts "$ip"
puts "$location"
puts "$password"}
spawn ssh $ip tail -f $location > /home/log_$ip 2>/dev/null &
expect {
".*Are.*.*yes.*no.*" { send "yes\n" }
"*?assword:*" { send "$password\r" }
}
")
回声“$VAR”
当我运行脚本时,它给了我这个错误:
错误 #args: 应该是“读取 channelId ?numChars?” 或“读取?-nonewline?channelId”,同时执行从“set content [read]”中调用的“read”