#!/bin/bash
ssh -t $SSH "
some
commands
"
“与 xx.xxx.xx.xxx 的连接已关闭”消息来自哪里?即使使用 result=,我也无法阻止它ssh ...
答案1
这是来自 SSH 的。您之所以看到它,是因为你给了开关-t
,这会强制 SSH 分配一个伪终端用于连接。传统上,SSH 显示该消息以明确表示您不再与远程主机上的 shell 交互,这通常仅在 SSH 分配了伪终端时才会出现。
答案2
如果您添加-o LogLevel=QUIET
到 SSH 命令行,该消息应该会消失:
ssh -o LogLevel=QUIET -t $SSH "
some
commands
"
您还可以将其添加到~/.ssh/config
文件中,作为一行内容LogLevel QUIET
答案3
我知道这是一个相当老的问题但它在搜索中出现。
更好的答案在这里:当使用 expect 脚本中的 interact 处理 ssh 时,如何在关闭 ssh 时隐藏或编辑消息。
基本上,使用该ssh -q
选项 - 它对我来说非常完美。
答案4
其他地方提到了使用“-q”或“-oLogLevel=quiet”或“2>/dev/null”,但这些解决方案将抑制所有 SSH 错误消息。最好看到相关错误,但抑制“连接”消息。此示例将显示错误并抑制“连接”消息(在 Bash 中):
ssh -t -oLogLevel=error myhost mycommand 2> >(grep -v '^Connection to' 1>&2)