Linux
我想從命令輸出中列印確切的單詞
telnet test | grep -o Unable telnet: Unable to connect to remote host: Connection refused
結果應該只有“無法”。
telnet
無法連接時輸出的錯誤資訊會列印到標準錯誤流中。預設情況下,標準錯誤流直接發送到終端。您只能將標準輸出流通過管道傳輸到其他命令(grep
在這種情況下)。您可以通過重定向將錯誤流發送到標準輸出流:
telnet test 2>&1 | grep -o Unable
這將合併兩個流,
grep
並將作用於合併的數據流。如果您想在 中擷取錯誤情況
telnet
,也可以使用該實用程序的退出狀態:if ! telnet test 2>/dev/null; then echo 'something went wrong with telnet' exit 1 fi echo 'telnet ran successfully'
如果
telnet
返回非零退出狀態(表示某種失敗),這將退出腳本。我另外將錯誤流重定向到/dev/null
以完全丟棄它。