perl 脚本知道谁调用它和/或如何调用它的任何方式?
无论是另一个脚本,还是一个可执行文件。直接从命令行或 cron 调度程序。
最佳答案
帮助追踪 Perl 脚本如何启动的工具:getppid
返回父进程 ID。然后您可以使用 ps
或 /proc/<pid>
以获取有关调用过程的更多信息。
$^X
: perl 解释器的完整路径,它可以提供有关 Perl 如何从 shell 启动的线索
$0
, __FILE__
: 从命令行调用的脚本的名称,以及当前文件名。如果它们一致,则当前文件包含从命令行调用的脚本。
@ARGV
:传递给脚本的命令行参数。与 $^X
, $0
, 和 @ARGV
,您确切地知道 Perl 解释器是如何从 shell 启动的。
caller
:堆栈跟踪信息。如 caller
返回 undef
在脚本开始时,您位于堆栈的顶部框架,并且您的脚本是从 shell 调用的。否则 caller
返回调用脚本的包、文件和行(使用 do
或 require
)。
$^T
: 当前 Perl 脚本启动的时间(自“纪元”以来的秒数),因此您知道当前 Perl 解释器是何时从 shell 启动的。使用 scalar localtime($^T)
以更友好的格式查看此值。
关于perl - 我怎么知道 perl 脚本是如何启动的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2784069/