J'ai un script où il vérifie si un package est installé ou non et si le port 8080 est utilisé par un processus particulier ou non. Je ne suis pas du tout expérimenté avec bash, alors j'ai fait quelque chose comme ça:
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...
Cependant, lorsque le script est exécuté, j'obtiens à la fois les sorties dpkg -s net-tools
et les netstat -tlpn | grep 8080 | grep java
sorties dans le terminal, et je ne le veux pas, comment puis-je masquer la sortie et simplement m'en tenir au résultat du if
s?
Existe-t-il également une manière plus élégante de faire ce que je fais? Et existe-t-il un moyen plus élégant de savoir quel processus utilise le port 8080 (pas seulement s'il est utilisé), le cas échéant?
grep -q
, et le nouveau bash&> ...
comme synonyme de> ... 2>&1