Je une série de commandes a, b, c que je chaînage avec &&: a && b && c
.
Je veux attraper la sortie de toutes les commandes à la fois sur stdout et stderr.
a && b && c 2>&1 > capture_file
capture uniquement la sortie de la commande c.
shell
io-redirection
TLOlczyk
la source
la source
2>&1
signifie dupliquer la destination de stdout (1) vers stderr (2), donc ce serait inutile à moins que vous n'ayez préalablement configuré la redirection stdout.2>capture_file >&2
(mais pas, car ce n'est pas idiomatique). L'important est que vous redirigiez l'un d'entre eux vers un fichier avant de dupliquer ce flux vers l'autre.Outre l'utilisation du regroupement de commandes,
{}
vous pouvez également exécuter les commandes dans un sous-shell et capturer la sortie (et / ou l'erreur) à la fois:Exemple :
la source