我试图在 Linux 上的 Perl 脚本中确定它是否在终端中运行。
也就是说,我需要这样的代码:
- 仅在命令行上运行时返回 true
./myscript.pl | less
运行时甚至返回 true./myscript.pl </dev/null >/dev/null 2>/dev/null
- 在 cron 作业中运行或作为 CGI 脚本运行时返回 false
特别是因为第二个子弹,我不能使用-t STDOUT
和变化,而且IO::Interactive也没用。
信息似乎是可用的。如果我 run ,它会在列中ps
显示一个条目,即使当我 run以及作为 cron 作业或 CGI 脚本运行时也是如此。pts/2
TTY
./myscript.pl </dev/null >/dev/null 2>/dev/null
?
有没有一种优雅的方法可以在 Perl 脚本中确定这一点?我宁愿不必解析ps
.