在检查当前端口是否正在使用时,我无法从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.)
显示为输出。我也尝试过:
2>/dev/null| cut -d' ' -f45-50 | sed 's/[^0-9]*//g'
只会在Not all processes ...输出后产生一堆空行,但仍会在输出中显示。
答案 0 :(得分:2)
最终解决了我自己的问题。 使用以下
netstat -taepn 2>/dev/null | grep -Po "\b(\d|\.)+:1521\b" 1>/dev/null
当我只想要错误代码而没有输出
时,这特定于我的情况答案 1 :(得分:1)
接受的答案对我不起作用,CentOS6.5 32位在这里。无论端口处于什么状态,它都不会输出任何内容。
我找到了解决方案:
netstat -antp 2>/dev/null | grep [port-num]
如果常规用户执行,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.)
适用于两种情况:
答案 2 :(得分:0)
代替
netstat -anp
您可以检查使用
sudo netstat -anp
这对我有用。