如何检测stdout是否连接到Perl中的tty?

时间:2010-08-18 22:28:25

标签: perl stdout tty

我正在寻找与此Python代码等效的Perl:

from sys import stdout
if stdout.isatty():
    print "yes"
else:
    print "no"

2 个答案:

答案 0 :(得分:15)

使用-t filetest operator

print -t STDOUT ? "Yes\n" : "No\n"

请注意,在Perl中,STDOUT可以绑定(本质上是一个过于复杂的重载对象),因此即使STDOUT没有直接连接到TTY,它仍然可以到达TTY。

答案 1 :(得分:8)

如果您需要STDOUT实际连接到终端,请使用IO::interactive,而不是仅仅重定向到/dev/null/或其他任何内容。