Mam skrypt, w którym sprawdza, czy pakiet jest zainstalowany, czy nie i czy port 8080 jest używany przez określony proces, czy nie. W ogóle nie mam doświadczenia z bash, więc zrobiłem coś takiego:
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...
Jednak po uruchomieniu skryptu otrzymuję zarówno dane wyjściowe, jak dpkg -s net-tools
i dane netstat -tlpn | grep 8080 | grep java
wyjściowe w terminalu, i nie chcę tego, w jaki sposób mogę ukryć dane wyjściowe i po prostu trzymać się wyniku if
s?
Czy jest też bardziej elegancki sposób na robienie tego, co robię? Czy istnieje bardziej elegancki sposób, aby dowiedzieć się, jaki proces wykorzystuje port 8080 (nie tylko jeśli jest używany), jeśli taki istnieje?
grep -q
, a nowsze bash&> ...
jako synonim> ... 2>&1