如何判断 STDIN 是否连接到 Perl 中的终端?
tomdee
问问题
3793 次
3 回答
15
if (-t *STDIN) {
# stdin is connected
} else {
# stdin is not connected
}
我通常将它与 , 结合使用-t *STDOUT
,以确定我是从交互式 shell 还是从 cron 运行,以启用更多输出。
于 2009-02-09T16:14:42.790 回答
12
您可能还对IO::Interactive感兴趣,以确定 Perl 是否认为它正在与用户交互。仅仅连接到一个 tty 并不意味着用户会看到你在做什么。
于 2009-02-09T17:21:34.297 回答
0
一种解决方案是使用tty:
[root@server] ~> tty
/dev/pts/0
[root@server] ~> echo y | tty
not a tty
但它不是很漂亮...
于 2009-02-09T16:16:02.427 回答