Linux Perl - 脚本打印其脚本名称?

时间:2015-02-25 05:57:27

标签: linux perl

我正在运行一个名为 statusCron.pl 的脚本。

我想在运行该脚本时,该脚本可以检测/打印其名称 statusCron.pl 。通过这种方式,我可以检测到它的进程ID,这样如果它发现自己已经在后台运行,它就会自杀。

通过这种方式,我可以消除硬编码并将其重新应用到我的所有脚本中。

Additional:我不希望包含该目录。

4 个答案:

答案 0 :(得分:2)

您可以像这样使用File :: Basename:

use File::Basename;
print basename(__FILE__), "\n";

答案 1 :(得分:2)

您可以在$0变量中获取正在运行的程序的名称,并且为了避免使用目录名,我们使用模块File :: Basename来仅获取基本名称。

    use File::Basename;
    my $name = basename($0);
    print $name;
其他特殊变量

man perlvar

答案 2 :(得分:0)

您可以通过编写此

来打印Perl脚本文件的名称和进程ID
printf("%s %d\n", $0 =~ m|([^\\/]+)$|, $$);

答案 3 :(得分:0)

#!/usr/bin/perl
print $0;

$0存储脚本的名称