我的问题与此类似:How to detect if my shell script is running through a pipe? .不同之处在于我正在处理的脚本是用 Ruby 编写的。
假设我运行:
./test.rb
我希望 stdout 上的文本带有颜色,但是
./test.rb | cat
我希望颜色代码被删除。
最佳答案
使用 $stdout.isatty
或更惯用的方式,$stdout.tty?
。我创建了一个小的 test.rb 文件来演示,内容:
puts $stdout.isatty
结果:
$ ruby test.rb
true
$ ruby test.rb | cat
false
关于ruby - 如何检测 Ruby 脚本是否正在通过 shell 管道运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43789845/