Próbować:
service --status-all |& grep network
Aplikacje wiersza polecenia mogą drukować na dwóch strumieniach tekstu znanych jako standardowe wyjście ( standardowe wyjście) i standardowy błąd (standardowe). Domyślnie terminal wyświetla identycznie dane wyjściowe dla obu.
Stdout jest podany numer 1, a stderr jest podany numer 2. Domyślnie, operatorów przekierowania, jak >
, |
i <
odnoszą się tylko do stdout, numer 1.
|&
potokuje stdout i stderr razem do procesu na standardowym strumieniu wejściowym (stdin) po prawej stronie, co zapewnia grep
pracę zgodnie z oczekiwaniami.
Nie wiem, dlaczego tutaj service --status-all
jest drukowane do stderr, ale ogólnie rzecz biorąc, oddzielny strumień stderr jest bardzo przydatny, ponieważ pozwala zobaczyć błędy, nawet gdy stdout jest wyciszony.
Musisz przekierować standardowy strumień błędów (
2
) na standardowe wyjście (1
):Operator
>
zwykle przekierowuje do pliku (np2>/tmp/file
.). Aby przekierować do innego strumienia za pomocą deskryptora , musi być poprzedzony&
(nie ma spacji między znakami).źródło