Ich habe ein Skript, in dem überprüft wird, ob ein Paket installiert ist oder nicht und ob der Port 8080 von einem bestimmten Prozess verwendet wird oder nicht. Ich habe überhaupt keine Erfahrung mit Bash, also habe ich so etwas gemacht:
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...
Wenn das Skript ausgeführt wird, werden jedoch sowohl die dpkg -s net-tools
als auch die netstat -tlpn | grep 8080 | grep java
Ausgaben im Terminal angezeigt, und das möchte ich nicht. Wie kann ich die Ausgabe ausblenden und mich nur an das Ergebnis des if
s halten?
Gibt es auch eine elegantere Möglichkeit, das zu tun, was ich tue? Und gibt es eine elegantere Methode, um festzustellen, welcher Prozess den Port 8080 verwendet (nicht nur, wenn er verwendet wird), falls vorhanden?
grep -q
, und die neuere Bash&> ...
als Synonym für> ... 2>&1