Para ocultar a saída de qualquer comando, normalmente os stdout
e stderr
são redirecionados para /dev/null
.
command > /dev/null 2>&1
Explicação:
1. command > /dev/null
: redireciona a saída de command
(stdout) para /dev/null
2. 2>&1
: redireciona stderr
para stdout
, portanto, os erros (se houver) também vão para /dev/null
Nota
&>/dev/null
: redireciona os itens stdout
e stderr
para /dev/null
. pode-se usá-lo como uma alternativa de /dev/null 2>&1
Silent grep
: grep -q "string"
corresponde a string de forma silenciosa ou silenciosa, sem nada para a saída padrão. Também pode ser usado para ocultar a saída.
No seu caso, você pode usá-lo como,
if dpkg -s net-tools > /dev/null 2>&1; then
if netstat -tlpn | grep 8080 | grep java > /dev/null 2>&1; then
#rest thing
else
echo "your message"
fi
Aqui, as condições if serão verificadas como estavam antes, mas não haverá saída.
Responda ao comentário :
netstat -tlpn | grep 8080 | grep java > /dev/null 2>&1
: está redirecionando a saída gerada de grep java
após o segundo canal. Mas a mensagem que você está recebendo de netstat -tlpn
. A solução é usar segundo if
como,
if [[ 'netstat -tlpn | grep 8080 | grep java' ]] &>/dev/null; then