如何判断STDIN是否连接到Perl中的终端?

如何判断STDIN是否连接到Perl中的终端?,perl,terminal,stdin,Perl,Terminal,Stdin,如何判断STDIN是否连接到Perl中的终端 if (-t *STDIN) { # stdin is connected } else { # stdin is not connected } 我通常将其与-t*STDOUT结合使用,以确定我是从交互式shell还是从cron运行,以启用更多输出。一种解决方案是使用tty: [root@server] ~> tty /dev/pts/0 [root@server] ~> echo y | tty not a tty 但是不

如何判断STDIN是否连接到Perl中的终端

if (-t *STDIN) {
  # stdin is connected
} else {
  # stdin is not connected
}

我通常将其与
-t*STDOUT
结合使用,以确定我是从交互式shell还是从cron运行,以启用更多输出。

一种解决方案是使用tty:

[root@server] ~> tty
/dev/pts/0
[root@server] ~> echo y | tty
not a tty

但是不是很漂亮…

您可能还想知道Perl是否认为它正在与用户交互。简单地连接到tty并不意味着用户将看到您所做的事情