• [^] # Re: Pipe erreur

    Posté par . En réponse au journal petite introduction à Fish. Évalué à 2.

    En Bash, 1 désigne stdout, et 2 stderr. Cela peut avoir une cohérence il me semble lorsque l'on connaît certains appels systèmes. Ceci dit, stderr – standard error – et stdout – standard output – sont moins cryptiques que 1 et 2. Et /dev/std... fonctionneront quel que soit le langage utilisé. Ils sont liés à Linux (Peut-être pourrais-je dire à Unix/POSIX ?).

    Et quid de la cohérence ?
    En Bash :
    >&1 redirige vers /dev/stdout
    >&2 redirige vers /dev/stderr
    Le symbole de redirection serait donc >.
    Et le pipe | redirigerait la sortie standard vers le programme à sa droite.
    Sauf que avec |&, | redirige non stdout mais stderr, et non vers le programme à sa droite, mais vers & qui désigne cette fois non la mise en arrière plan mais /dev/stdout.

    Avec Fish, l'esperluette a un usage unique, la mise en arrière plan, de même que > redirige toujours stdout, et ^ toujours vers stderr.