パッケージがインストールされているかどうか、ポート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が使用されている場合だけでなく、ポート8080を使用しているプロセスを知るためのよりエレガントな方法はありますか?
grep -q
、以降はbash&> ...
の同義語として> ... 2>&1