抑制 bash 中 telnet 的输出
Posted
技术标签:
【中文标题】抑制 bash 中 telnet 的输出【英文标题】:surpress output of telnet in bash 【发布时间】:2013-01-07 05:24:56 【问题描述】:我正在通过 bash 脚本远程登录到一台机器。一切正常,只是 telnet 会话的输出显示在屏幕上。我想知道如何抑制这种情况。我似乎找不到合适的位置来输入/dev/null
。
我不想运行script.sh > /dev/null
,因为我需要查看它的其他输出。
expect <<EOF
set timeout 20
spawn telnet 0.0.0.0
match_max 100000
expect -exact "Trying 0.0.0.0...\r
Connected to 0.0.0.0.\r
Escape character is '^\]'.\r
\r
User name: "
send -- "user\r"
expect -exact "user\r
\r
Password: "
send -- "pass\r"
expect -exact "pass\r
send -- "commands"
send -- "exit\r"
EOF
【问题讨论】:
【参考方案1】:根据expect
手册页,log_user 0
命令可用于禁用记录到标准输出。这不会将日志记录更改为日志文件。同样,log_user 1
可用于重新启用标准输出日志记录。
【讨论】:
【参考方案2】:您可以使用 netcat (nc
) 代替 telnet。 Netcat 没有 telnet 显示的额外输出。
【讨论】:
但是我不是必须为nc使用额外的文件吗? @Lurch No.nc
可以用作 telnet 的替代品。试一试。
我得到 spawn nc 0.0.0.0 23 ÿûÿû 用户名:
@Lurch 首先在expect
之外尝试nc
,以确保您了解它在做什么。只需在命令行上尝试一下。以上是关于抑制 bash 中 telnet 的输出的主要内容,如果未能解决你的问题,请参考以下文章