阅读ruby文档在这里并没有太大帮助:
如果ios与终端设备(tty)关联,则返回true,否则返回false.
我希望得到一些额外的资源或解释,以帮助我更好地理解这一点.
对于上下文,我正在编写一个小命令行程序,它接受文件路径或管道内容到ruby可执行文件中并#tty?用于确定即将发生的事情.
谢谢!
似乎http://www.jstorimer.com/blogs/workingwithcode/7766125-writing-ruby-scripts-that-respect-pipelines提供了最简洁的描述#tty?:
Ruby 的 IO#isatty 方法(别名为 IO#tty?)会告诉您有问题的 IO 是否附加到终端。例如,在 $stdout 上调用它,当它被管道传输时将返回 false。
以下是一些您可能会觉得有用的相关信息:
背景含义通过pty 和 tty 是什么意思?:
在 UNIX 中,/dev/tty* 是任何充当“电传打字机”的设备,即终端。(称为电传打字机,因为那是我们在那些黑暗日子里用于终端的东西。)
本着问题的精神,这里有一个/dev/tty从http://zetcode.com/lang/rubytutorial/io/写入的示例:
#!/usr/bin/ruby
fd = IO.sysopen "/dev/tty", "w"
ios = IO.new(fd, "w")
ios.puts "ZetCode"
ios.close
Run Code Online (Sandbox Code Playgroud)