题
我怎样才能判断是否STDIN被连接到一个终端在Perl?
解决方案
if (-t STDIN) {
# stdin is connected
} else {
# stdin is not connected
}
我通常与-t STDOUT一起使用此,以找出是否我是从一个交互式壳运行,或者从cron,使更多的输出。
其他提示
您可能也有兴趣在 IO ::互动,以找出是否认为Perl的它是与用户交互。简单地连接到一个tty并不意味着用户会看到你做什么。
的一种解决方案将是使用TTY:
[root@server] ~> tty
/dev/pts/0
[root@server] ~> echo y | tty
not a tty
但不是很漂亮......
不隶属于 StackOverflow