Tratar:
service --status-all |& grep network
Las aplicaciones de línea de comandos pueden imprimir en dos secuencias de texto conocidas como salida estándar (stdout) y error estándar (stderr). Por defecto, el terminal solo muestra la salida para ambos de forma idéntica.
Stdout recibe el número 1, y stderr recibe el número 2. Por defecto, los operadores de redirección, como >
, |
y se <
aplican solo a stdout, número 1.
|&
canaliza tanto stdout como stderr juntos al proceso en la secuencia de entrada estándar (stdin) de la derecha, lo que hace que grep
funcione como esperaba.
No sé por qué service --status-all
está imprimiendo stderr aquí, pero en general, tener una secuencia stderr separada es muy útil, ya que le permite ver errores incluso cuando stdout está silenciado.
Debe redirigir la secuencia de error estándar (
2
) a la salida estándar (1
):El operador
>
normalmente redirige al archivo (por ejemplo2>/tmp/file
). Para redirigir a otra secuencia usando el descriptor , debe ir precedido de&
(tenga en cuenta que no hay espacios entre los caracteres).fuente