у меня есть файл с IP-адресами, расположением файлов и паролями. Я не могу использовать аутентификацию по ключу ssh, поэтому я ограничен использованием expect внутри скрипта bash. файл содержит следующую информацию, разделенную пробелами:
ip пароль местоположения
ip пароль местоположения
так далее
мой сценарий:
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"
когда я запускаю скрипт, он выдает мне эту ошибку:
неверные # аргументы: должно быть "read channelId ?numChars?" или "read ?-nonewline? channelId" при выполнении "read", вызванного из "set content [read]"