Ocultar posts de command en un script de shell

En un script bash , estoy usando herramientas como conntrack y tcpdump para generar resultados en un file, pero deseo ocultar el post estándar que se muestra en la primera línea de salida en la línea de command luego de ejecutar el command / script.

post:

conntrack v1.0.0 (conntrack-tools): 6 flow entries have been shown.

Después de leer la página del hombre bash , he intentado cosas como:

 conntrack -L|grep "dport=6439" &> /tmp/file 

Independientemente de la opción de redirect que bash, el post conntrack que indica el número de inputs de flujo siempre se muestra en el shell donde ejecuto el script. Lo mismo ocurre con tcpdump donde se enumera el dispositivo de captura y la cantidad de packages capturados, etc.

Por supuesto, podría agregar clear después de los commands conntrack o tcpdump para ocultar rápidamente el resultado, pero esa solución es fea.

¿Cómo puedo ocultar este tipo de posts?

Solutions Collecting From Web of "Ocultar posts de command en un script de shell"

Esos posts se imprimen como errores (stderr) en lugar de salida normal (stdout).

Solo stdout se canaliza, no stderr. Entonces al tener &> /tmp/file después de grep, solo estás fusionando la salida stdout y stderr de grep , no fusionará la stderr de conntrack

Para su ejemplo, probablemente desee algo como:

 conntrack -L 2>&1 | grep "dport=6439" > /tmp/file 

stderr es el descriptor de file 2, y stdout es el descriptor de file 1. 2>&1 combina stderr en stdout.

Al pegar 2>&1 en conntrack , la salida se fusiona antes de que se canalice a grep . No hay necesidad de fusionarse nuevamente en grep .