如何从 nc 配置 stderr?

如何从 nc 配置 stderr?

我想检查端口连接并将nc结果转发到文本文件。

stdout工作正常。stderr是空的,如果你不使用-v(我不想要),所以我想配置错误输出,例如Servername: no connection

nc是版本v1.10-41+b1。

这是命令

nc -z -G 5 $Servername $Portname >> telnet_log.txt 2>&1

答案1

nc在 macOS 上,如果无法连接到主机,则会以非零退出状态退出。您可以在 - 语句中使用此事实if来输出您自己的错误消息:

if ! nc -z -G 5 "$server" "$port"; then
    printf '%s: no connection (port=%s)\n' "$server" "$port" >&2
fi >>nc-results.log 2>&1

如果连接成功,这会将nc标准输出上生成的任何数据添加到文件中nc-report.log,但如果未连接,则会添加您自己的自定义错误。

相关内容