Я бы ожидал
echo foo | tee /proc/self/fd/{3..6} 3>&1
потерпеть неудачу с ошибками типа / proc / self / fd / 4: нет такого файла или каталога и т. д., но, к моему удивлению, он выводит
foo
foo
foo
foo
foo
Это как будто 3>&1
все последующие дескрипторы перенаправляются на стандартный вывод, за исключением того, что он не работает, если я перехожу 3
на что-то другое, например
$ 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
Есть ли объяснение этому поведению?
источник