我有一个脚本,用于检查是否安装了软件包以及特定进程是否正在使用端口8080。我对bash完全没有经验,所以我做了这样的事情:
if dpkg -s net-tools; then
if netstat -tlpn | grep 8080 | grep java; then
echo "Shut down server before executing this script"
exit
fi
else
echo "If the server is running please shut it down before continuing with the execution of this script"
fi
# the rest of the script...
但是,当执行脚本时,我会在终端中同时获得dpkg -s net-tools
和netstat -tlpn | grep 8080 | grep java
输出,而我不希望那样,如何隐藏输出并仅坚持if
s 的结果?
另外,还有一种更优雅的方式来执行我的操作吗?而且有一个更优雅的方式来知道哪些进程正在使用的端口8080(不只是如果了所使用的话),如果有的话?
grep -q
,以及较新的bash&> ...
作为“> ... 2>&1