Zee*_*Zee 1 unix bash shell netstat io-redirection
当我检查是否正在使用当前端口时,我无法从 netstat 命令中删除输出。我不需要命令的输出,而只需要错误代码。
运行netstat -anp | grep 1521 &>/dev/null结果在
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Run Code Online (Sandbox Code Playgroud)
显示为输出。我也试过:
2>/dev/null| cut -d' ' -f45-50 | sed 's/[^0-9]*//g'
Run Code Online (Sandbox Code Playgroud)
这只会在 Not all processes... 输出之后产生一堆空行,但仍然在输出中显示。
接受的答案对我不起作用,CentOS6.5 32位在这里。无论端口处于什么状态,它都不会输出任何内容。
我找到了我的解决方案:
netstat -antp 2>/dev/null | grep [port-num]
Run Code Online (Sandbox Code Playgroud)
netstat如果由普通用户执行,这将省略前两行。
警告两行需要省略:
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Run Code Online (Sandbox Code Playgroud)
并适用于两种情况:
最终解决了我自己的问题。使用以下
netstat -taepn 2>/dev/null | grep -Po "\b(\d|\.)+:1521\b" 1>/dev/null
Run Code Online (Sandbox Code Playgroud)
当我只想要错误代码而没有输出时,这特定于我的情况