gpt4 book ai didi

perl - Perl 脚本中的 "not running under some shell"是什么意思?

转载 作者:行者123 更新时间:2023-12-04 17:26:10 25 4
gpt4 key购买 nike

在许多 perl 脚本中(尤其是在著名的 CPAN 发行版中),我找到了以下代码:

eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
if 0; # not running under some shell

我想知道它是做什么用的?

谢谢。

最佳答案

某些系统无法识别 #!/usr/bin/perl行,因此在这样的系统上尝试按名称调用 Perl 程序只会将脚本传递给 shell。为了解决这个问题,可移植的 Perl 程序以一行开始,当被标准 POSIX shell 解释时,导致脚本被传递给 perl(1)反而。 if 0 Perl 本身运行时会导致该行被忽略,并将其放在单独的行上会导致 shell 将其视为单独的命令,仅运行 eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'一读完。

关于perl - Perl 脚本中的 "not running under some shell"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9143726/

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