Saya memiliki skrip tempat memeriksa apakah suatu paket diinstal atau tidak dan apakah port 8080 sedang digunakan oleh proses tertentu atau tidak. Saya tidak berpengalaman sama sekali dengan bash, jadi saya melakukan sesuatu seperti ini:
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...
Namun ketika skrip dieksekusi saya mendapatkan keduanya dpkg -s net-tools
dan netstat -tlpn | grep 8080 | grep java
output di terminal, dan saya tidak ingin itu, bagaimana saya bisa menyembunyikan output dan tetap dengan hasil dari if
s?
Juga, apakah ada cara yang lebih elegan untuk melakukan apa yang saya lakukan? Dan apakah ada cara yang lebih elegan untuk mengetahui proses apa yang menggunakan port 8080 (bukan hanya jika sedang digunakan), jika ada?
grep -q
, dan bash yang lebih baru&> ...
sebagai sinonim untuk> ... 2>&1