【发布时间】:2016-12-31 16:55:51
【问题描述】:
我需要替换一个非常简单的expect 脚本,如下所示:
#!/usr/bin/expect
spawn telnet 192.168.1.175
expect {
"assword" {send "lamepassword\r"}
}
interact
使用 empty 的等效 bash 脚本,如下所示:
#!/bin/bash
empty -f -i in -o out telnet 192.168.1.175
empty -w -i out -o in "assword" "lamepassword\n"
之后我需要用户使用 telnet 来interact,我不知道该怎么做。我想到的最接近的事情是将stdin 和stdout 与named pipes 绑定使用socat - in 之类的东西。任何建议都非常受欢迎!
【问题讨论】:
-
我唯一的问题是,你为什么使用 telnet?
-
因为用户与之交互的主机运行的是telnet。
-
我试过
cat out & cat /dev/stdin >in,它可以工作,但它有一个额外的换行符,制表符完成不起作用,ctr+c终止cat而不是正在运行的主机进程。我试图说服socat按照这些需求行事。
标签: linux bash pipe expect telnet