【发布时间】:2009-02-09 16:10:51
【问题描述】:
如何判断 STDIN 是否连接到 Perl 中的终端?
【问题讨论】:
如何判断 STDIN 是否连接到 Perl 中的终端?
【问题讨论】:
if (-t *STDIN) {
# stdin is connected
} else {
# stdin is not connected
}
我通常将它与 -t *STDOUT 结合使用,以确定我是从交互式 shell 还是从 cron 运行,以启用更多输出。
【讨论】:
您可能还对IO::Interactive 感兴趣,以了解 Perl 是否认为它正在与用户交互。仅仅连接到一个 tty 并不意味着用户会看到你在做什么。
【讨论】:
一种解决方案是使用 tty:
[root@server] ~> tty
/dev/pts/0
[root@server] ~> echo y | tty
not a tty
但不是很漂亮……
【讨论】: