如何自动化 BusyBox telnet

How to automate BusyBox telnet

我需要两个嵌入式 Linux 目标之间的自动 telnet 脚本,在客户端使用 BusyBox v1.22.1,在主机上使用 BusyBox v1.10.3。注:Expect is not available on this system. I've tried the recommendations here没有成功。例如,这个

host=1.1.1.2
port=23 # note - port is not required
pass=xxxx # note - pass is not required 
cmd1=24

( echo open ${host} ${port}
  sleep 1
  echo -e "\r"
  sleep 1
  echo ${pass}
  sleep 1
  echo -e "\r"
  sleep 1
  echo ${cmd1}
  sleep 1
  echo -e "\r"
  sleep 1
  echo exit ) | telnet

returns这个

Usage: telnet [-a] [-l USER] HOST [PORT]
Connect to telnet server
        -a      Automatic login with $USER variable
        -l USER Automatic login as USER

所以我尝试了 'Usage'(以上)的各种组合但没有成功(它总是要求手动输入 'login')。

BusyBox v1.22.1 上的 telnet 自动登录是否损坏,或者我只是缺少一些简单的东西?

最终使用我指出的原始示例让它工作。令人困惑的部分是 telnet 会话在最后一个“)”没有退出命令的情况下退出。此外,none telnet 会话期间的命令阻塞,因此每个命令的睡眠时间必须足够长。在这种情况下,'user' 是 root 并且没有密码。我可能需要插入一些 echo -e "\r" 但这里是将合并到脚本中的工作命令:

( echo -e "\r"
  sleep 1
  echo root
  sleep 2
  echo ${cmd1}
  sleep 65
  echo ${cmd2}
  sleep 2
  echo ${cmd3}
  sleep 52 ) | telnet $host