Oczekiwałbym
echo foo | tee /proc/self/fd/{3..6} 3>&1
nie udać się z błędami takimi jak / proc / self / fd / 4: Nie ma takiego pliku lub katalogu itp., ale ku mojemu zaskoczeniu, wyświetla
foo
foo
foo
foo
foo
To tak, jakby 3>&1
wszystkie poniższe deskryptory zostały przekierowane na standardowe wyjście, z wyjątkiem tego, że nie działa, jeśli zmienię 3
na coś innego, na przykład
$ 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
Czy istnieje wyjaśnienie tego zachowania?
źródło