У мене є сценарій, де він перевіряє, встановлений чи ні пакет, і чи використовується порт 8080 певним процесом чи ні. Я зовсім не досвідчений з басом, тому я зробив щось подібне:
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
з?
Також, чи є більш елегантний спосіб робити те, що я роблю? І чи є більш елегантний спосіб дізнатися, який процес використовує порт 8080 (не лише якщо він використовується), якщо він є?
grep -q
і новіший баш&> ...
як синонім> ... 2>&1