【问题标题】:surpress output of telnet in bash抑制 bash 中 telnet 的输出
【发布时间】: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

【问题讨论】:

    标签: linux bash telnet expect


    【解决方案1】:

    根据expect 手册页,log_user 0 命令可用于禁用记录到标准输出。这不会将日志记录更改为日志文件。同样,log_user 1 可用于重新启用标准输出日志记录。

    【讨论】:

      【解决方案2】:

      您可以使用 netcat (nc) 代替 telnetNetcat 没有 telnet 显示的额外输出。

      【讨论】:

      • 但是我不是必须为nc使用额外的文件吗?
      • @Lurch No. nc 可以用作 telnet 的替代品。试一试。
      • 我得到 spawn nc 0.0.0.0 23 ÿûÿû 用户名:
      • @Lurch 首先在expect 之外尝试nc,以确保您了解它在做什么。只需在命令行上尝试一下。
      猜你喜欢
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-11
      • 2021-12-17
      • 2019-03-23
      • 2012-03-09
      相关资源
      最近更新 更多