How do I detect if stdout is connected to a tty in Perl?

后端 未结 2 1797
攒了一身酷
攒了一身酷 2020-12-17 14:47

I\'m looking for the Perl equivalent to this Python code:

from sys import stdout
if stdout.isatty():
    print \"yes\"
else:
    print \"no\"
相关标签:
2条回答
  • 2020-12-17 15:31

    Use IO::interactive if you require STDOUT to actually be connected to the terminal, and not just being redirected to /dev/null/ or whatever.

    0 讨论(0)
  • 2020-12-17 15:33

    Use the -t filetest operator.

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

    Note that in Perl, STDOUT can be tied (essentially an overcomplicated overloaded object) so output to STDOUT may still reach a TTY even if its not directly attached to one.

    0 讨论(0)
提交回复
热议问题