Ho uno script in cui controlla se un pacchetto è installato o meno e se la porta 8080 viene utilizzata o meno da un determinato processo. Non ho alcuna esperienza con bash, quindi ho fatto qualcosa del genere:
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...
Tuttavia quando lo script viene eseguito ottengo sia l' output che dpkg -s net-tools
l' netstat -tlpn | grep 8080 | grep java
output nel terminale, e non lo voglio, come posso nascondere l'output e attenermi al risultato di if
s?
Inoltre, c'è un modo più elegante per fare quello che sto facendo? Esiste un modo più elegante per sapere quale processo sta utilizzando la porta 8080 (non solo se viene utilizzata), se presente?
grep -q
, e il nuovo bash&> ...
come sinonimo di> ... 2>&1