Il mio comando è:
exec &>/dev/null
Cosa fanno questo e il comando completo qui? So che viene reindirizzato al bit-bucket.
Il mio comando è:
exec &>/dev/null
Cosa fanno questo e il comando completo qui? So che viene reindirizzato al bit-bucket.
Risposte:
Non è &>
solo &
.
In bash
, &>
reindirizza da qualche parte sia il flusso di output standard sia il flusso di errore standard.
Quindi, utility &>/dev/null
è lo stesso di utility >/dev/null 2>&1
.
Il comando exec &>/dev/null
reindirizza entrambi i flussi di output della shell corrente su /dev/null
(ovvero scarta tutto l'output dello script da quel punto in poi, errore o altro).
La parte pertinente del bash
manuale:
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
(ma non sull'errore standard). Ciò a cui è equivalente è exec >/dev/null 2>&1
. L'ordine dei reindirizzamenti è importante.