我有一个充满 Linux 机器的网络。在这个网络中,我有一个用户为user1,所有机器的密码为密码。
我有以下脚本将文件放在网络所有机器中user1的主目录中。
#!/usr/bin/expect -f
# connect via scp
spawn cat /home/user1/Desktop/IPlistfile.txt | while read line do
spawn scp /home/user1/Desktop/filetobesent.txt user1@${line}:/home/user1/Desktop
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "password\r"
}
}
interact
done
Run Code Online (Sandbox Code Playgroud)
问题是我收到一条错误消息“ can't read line. No such variable”。但是,如果我直接使用 IP 地址而不是行变量,则可以传输文件。
编辑:IPlistfile.txt 包含我网络中的 IP 地址列表。每行包含一个 IP 地址。