Ma commande est:
exec &>/dev/null
Que fait cette commande complète et ici? Je sais qu'il est redirigé vers le bit-bucket.
Ma commande est:
exec &>/dev/null
Que fait cette commande complète et ici? Je sais qu'il est redirigé vers le bit-bucket.
Réponses:
Ce n'est &>
pas juste &
.
Dans bash
, &>
redirige quelque part le flux de sortie standard et le flux d'erreur standard.
Par conséquent, utility &>/dev/null
est le même que utility >/dev/null 2>&1
.
La commande exec &>/dev/null
redirige les deux flux de sortie du shell actuel vers /dev/null
(c'est- à -dire qu'elle supprime toutes les sorties du script à partir de ce moment, erreur ou autre).
La partie pertinente du bash
manuel:
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
(mais pas l'erreur standard). Ce que cela équivaut à exec >/dev/null 2>&1
. L'ordre des redirections est important.