Eu esperaria
echo foo | tee /proc/self/fd/{3..6} 3>&1
falhar com erros como / proc / self / fd / 4: Esse arquivo ou diretório não existe, etc., mas para minha surpresa, ele gera
foo
foo
foo
foo
foo
É como fazer 3>&1
com que todos os descritores a seguir sejam redirecionados para stdout, exceto que não funcionará se eu mudar 3
para outra coisa, 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
Existe uma explicação para esse comportamento?