我想在Linux Perl脚本中知道它是从cmd行还是从bash脚本调用的。有什么想法吗?
答案 0 :(得分:0)
你可以调用linux命令' id'并将输出重定向到日志文件,这样您就会知道是谁调用了脚本。
答案 1 :(得分:0)
您可以使用getppid
标识Perl脚本父进程的进程ID。然后,您可以解析ps
输出或检查/proc/<parent-pid>
虚拟文件系统以识别父级。
<小时/>
更新:对于您的特定问题,如果某个bash脚本调用它,希望Perl脚本执行一些特殊操作,则可能更容易在脚本中设置特殊的环境变量。例如:
# special bash script
export SPECIAL=1
perl my_script.pl
# my_script.pl
...
do_something();
if ($ENV{SPECIAL}) {
print "Called from the special bash script\n";
send_email();
} else {
print "Not called from special bash script\n";
}