Dans les scripts, les erreurs sont généralement envoyées au descripteur de fichier 2 avec &2
, c'est-à-dire:
echo "error" >&2
Parfois /dev/stderr
est utilisé à la place:
echo "error" > /dev/stderr
En regardant /dev/stderr
, je vois que ce n'est qu'un lien symbolique vers /proc/self/fd/2
, qui à son tour est un lien symbolique vers /dev/pts/5
(sur mon terminal actuel).
Semble un peu trop compliqué. Y a-t-il une logique derrière cela?
Utilise /dev/stderr
et est &2
équivalent?
Est-ce que l'un d'entre eux est préféré à l'autre?
>2
, ou >&2
?
echo "error" >2
crée un fichier avec nom2
et contenuerror
.