У меня есть скрипт, где он проверяет, установлен ли пакет или нет, и используется ли порт 8080 определенным процессом или нет. У меня нет опыта работы с Bash, поэтому я сделал что-то вроде этого:
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...
Однако, когда скрипт выполняется, я получаю dpkg -s net-tools
и netstat -tlpn | grep 8080 | grep java
вывод, и вывод в терминале, и я не хочу этого, как я могу скрыть вывод и просто придерживаться результата if
s?
Кроме того, есть ли более элегантный способ сделать то, что я делаю? И есть ли более элегантный способ узнать, какой процесс использует порт 8080 (не только, если он используется), если таковой имеется?
grep -q
и новый bash&> ...
в качестве синонима> ... 2>&1