Moje polecenie to:
exec &>/dev/null
Co robi to i pełne polecenie tutaj? Wiem, że jest przekierowywany do segmentu bitów.
Moje polecenie to:
exec &>/dev/null
Co robi to i pełne polecenie tutaj? Wiem, że jest przekierowywany do segmentu bitów.
Odpowiedzi:
To &>
nie tylko &
.
W bash
, &>
przekierowuje zarówno standardowy strumień wyjściowy i standardowy strumień błędów gdzieś.
Dlatego utility &>/dev/null
jest taki sam jak utility >/dev/null 2>&1
.
Polecenie exec &>/dev/null
przekierowuje oba strumienie wyjściowe bieżącej powłoki do /dev/null
(tzn. Odrzuca wszystkie dane wyjściowe skryptu od tego momentu, błąd lub w inny sposób).
Odpowiednia część bash
instrukcji:
Redirecting Standard Output and Standard Error
This construct allows both the standard output (file descriptor 1) and
the standard error output (file descriptor 2) to be redirected to the
file whose name is the expansion of word.
There are two formats for redirecting standard output and standard
error:
&>word
and
>&word
Of the two forms, the first is preferred. This is semantically
equivalent to
>word 2>&1
When using the second form, word may not expand to a number or -. If
it does, other redirection operators apply (see Duplicating File
Descriptors below) for compatibility reasons.
exec 2>&1 > /dev/null
/dev/null
(ale nie standardowy błąd). To, co jest równoważne, to exec >/dev/null 2>&1
. Kolejność przekierowań jest ważna.