如何從 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,但如果未連接,則會新增您自己的自訂錯誤。

相關內容