Yo esperaría
echo foo | tee /proc/self/fd/{3..6} 3>&1
fallar con errores como / proc / self / fd / 4: No existe tal archivo o directorio , etc., pero para mi sorpresa, genera
foo
foo
foo
foo
foo
Es como si 3>&1
todos los descriptores siguientes fueran redirigidos a stdout, excepto que no funciona si cambio 3
a otra cosa, como
$ echo foo | tee /proc/self/fd/{3..6} 4>&1
tee: /proc/self/fd/3: No such file or directory
tee: /proc/self/fd/5: No such file or directory
tee: /proc/self/fd/6: No such file or directory
foo
foo
$ echo foo | tee /proc/self/fd/{4..6} 4>&1
tee: /proc/self/fd/5: No such file or directory
tee: /proc/self/fd/6: No such file or directory
foo
foo
¿Hay alguna explicación para este comportamiento?
fuente