use*_*194 3 linux grep shell-script telnet
telnet test | grep -o Unable
telnet: Unable to connect to remote host: Connection refused
Run Code Online (Sandbox Code Playgroud)
只有“无法”应该是结果。
telnet
无法连接时输出的错误消息会打印到标准错误流中。默认情况下,标准错误流直接发送到终端。您只能将标准输出流通过管道传输到其他命令(grep
在本例中)。
您可以通过重定向将错误流发送到标准输出流:
telnet test 2>&1 | grep -o Unable
Run Code Online (Sandbox Code Playgroud)
这将合并两个流grep
并将作为合并的数据流。
如果您想在 中捕获错误条件telnet
,也可以使用该实用程序的退出状态:
if ! telnet test 2>/dev/null; then
echo 'something went wrong with telnet'
exit 1
fi
echo 'telnet ran successfully'
Run Code Online (Sandbox Code Playgroud)
如果telnet
返回非零退出状态(表示某种失败),这将退出脚本。我另外将错误流重定向到/dev/null
以完全丢弃它。