İstediğiniz
exec &>$(tty)
Sorunuzda yaptığınız şey, stdout ve stderr dosyalarına önceden yönlendirilmiş olan orijinal stdout ve stderr'da çoğaltılmasıdır.
Gilles'in cevabı açıkladığı gibi, ttymevcut terminalin terminal cihazını döndürecektir. Burası, üç standart dosya tanımlayıcısının varsayılan olarak bir oturum açma kabuğunda geldiği / gideceği yerdir. Bu nedenle yukarıdaki ifade, ttystdout ve stderr'i daha önce olduğu gibi terminal cihazına yönlendirmek için kullanılır .
Taşınabilirlikle ilgili endişeleriniz varsa (Gilles'in cevabı hakkındaki yorumunuza göre), her iki yöntem de ( tty yardımcı programı ve /dev/ttydosya ) POSIX standardındadır.
Gilles'in yorumundan kelimesi kelimesine kopyalandı:
There's an advantage to /dev/tty: it works even after exec <somefile,
whereas $(tty) would complain “not a tty”
execyapı genellikle çıktılarını örneğin bir dosyaya yönlendirmek için alt kabukta çalışan komut dosyalarında kullanılır. Etkileşimli bir oturumda bunun için bir kullanım görmüyorum.