0

通过 telnet 自动发送文件可以正常工作。但是如何让 telnet “等待”我以这种方式启动的进程,在这种情况下nc接收文件?这里的机器人在192.168.0.45,我的笔记本电脑在192.168.0.10

{
sleep 1
echo "root"
echo "cd /flash"
echo "nc 192.168.0.10 10001 >lasertest"
sleep 5
} | telnet 192.168.0.45 23

有几个像这样的问题 [1],但似乎没有一个人想要这种同步行为。在上面的过程中等待 5 秒,只是假设这对于传输来说已经足够了。如果不够长,以这种方式传输的文件只会被截断并损坏。

[1] shell 脚本中的 Telnet

4

1 回答 1

1

一个expect脚本应该做。

#!/usr/bin/expect -f
spawn telnet 192.168.0.45 23
expect login
send "root\n"
send "cd /flash\n"
send "nc 192.168.0.10 10001 >lasertest\n"
send "exit\n"
expect eof

如果登录提示不包含“login”,则适当更改“expect”命令。

于 2013-06-10T11:06:15.413 回答