stdout の COPY を bash スクリプト自体からログ ファイルにリダイレクトするのと同様ですが、stdout を TTY デバイスとして保持したいと思います。
たとえば、次のスクリプトがあります。
/tmp/teed-off$ cat some-script
#!/usr/bin/env ruby
if $stdout.tty?
puts "stdout is a TTY"
else
puts "stdout is NOT a TTY"
end
/tmp/teed-off$ cat wrapper
#!/usr/bin/env bash
exec > >(tee some-script.log)
./some-script
それらを実行すると、ラッパーは stdout を TTY デバイスとして使用します。
/tmp/teed-off$ ./some-script
stdout is a TTY
/tmp/teed-off$ ./wrapper
stdout is NOT a TTY
ラッパーを介して実行された場合でも、スクリプトが TTY にあると信じられるように、その動作を反転するにはどうすればよいですか?