Tengo un script donde comprueba si un paquete está instalado o no y si el puerto 8080 está siendo utilizado por un proceso en particular o no. No tengo experiencia con bash, así que hice algo como esto:
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...
Sin embargo, cuando se ejecuta el script, obtengo tanto las salidas dpkg -s net-tools
como las netstat -tlpn | grep 8080 | grep java
salidas en el terminal, y no quiero eso, ¿cómo puedo ocultar la salida y simplemente seguir con el resultado de la if
s?
Además, ¿hay una forma más elegante de hacer lo que estoy haciendo? ¿Y hay una manera más elegante de saber qué proceso está usando el puerto 8080 (no solo si se está usando), si lo hay?
grep -q
, y la nueva fiesta&> ...
como sinónimo de> ... 2>&1