gpt4 book ai didi

linux - 如何检查 Perl 脚本是否正在终端中运行?

转载 作者:IT王子 更新时间:2023-10-29 00:10:19 27 4
gpt4 key购买 nike

我试图在 Linux 上的 Perl 脚本中确定它是否在终端中运行。

也就是说,我需要的代码:

  • 仅在命令行上运行时返回 true
  • 在运行 ./myscript.pl | less 时也返回 true甚至 ./myscript.pl </dev/null >/dev/null 2>/dev/null
  • 在 cron 作业或作为 CGI 脚本运行时返回 false

特别是因为第二个项目符号,我不能使用-t STDOUT和变化,还有IO::Interactive没有用。

信息似乎是可用的。如果我运行 ps , 它会显示类似 pts/2 的条目在TTY列,即使我运行 ./myscript.pl </dev/null >/dev/null 2>/dev/null , 和 ?当作为 cron 作业或 CGI 脚本运行时。

有没有一种优雅的方法可以在 Perl 脚本中确定这一点?我宁愿不必解析 ps 的输出.

最佳答案

你可以尝试打开/dev/tty。如果您在终端中(即使在远程计算机上的终端中),这将起作用。否则,如果脚本通过 at 或 cron 运行,则不会。

注意:这仅适用于 Unix 系统。

关于linux - 如何检查 Perl 脚本是否正在终端中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6955191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com