in Tester le contenu d'une variableEt si je rajoute ca : >&2; exit 1Citation:
Envoyé par BEEP-BEEP
ca veut dire quoi ?
Code:echo "KO" >&2; exit 1
Version imprimable
in Tester le contenu d'une variableEt si je rajoute ca : >&2; exit 1Citation:
Envoyé par BEEP-BEEP
ca veut dire quoi ?
Code:echo "KO" >&2; exit 1
>&2 (ou bien 1>&2) veut dire "envoyer ce qui devrait être écrit sur la sortie standard (stdout) là où va la sortie d'erreur (stderr)".
Grosso modo, echo "KO" écrit "KO" sur la stdout et echo "KO" >&2 redirige la sortie standard vers la stderr, et donc écrit "KO" sur la stderr.
Et le exit 1 demande à quitter le programme courant.
(le ; sert juste à séparer et enchaîner les 2 instructions)
Code:
1
2
3
4
5
6
7 $ { echo "so" ; echo "se" 1>&2; } > /tmp/so.txt 2> /tmp/se.txt $ cat /tmp/so.txt so $ cat /tmp/se.txt se
OK.
Et si j'ai bien compris le cours de ce forum :
&> /dev/null signifie :
redirection simultanée de la sortie standard (descripteur 1) et de la sortie d'erreur standard (descripteur 2), dans le fichier "poubelle" /dev/null pour que cela s'affiche nul part, en fait.
C'est équivalent à :
>/dev/null 2>&1
Bonjour
Déjà ce n'est pas &>truc mais canalX>&canalY (le "&" se trouve après la redirection, pas avant) et ça signifie littéralement "redirige le canal X vers le canal Y".
Redirige le canal 1 (1 implicite) vers /dev/null et redirige le canal 2 vers le canal 1 (donc vers /dev/null par ricochet)
si, si, &> existe en bash; ça redirige bien simultanément stdout et stderr. voir le man