加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Perl脚本中“不在某些shell下运行”是什么意思?

发布时间:2020-12-15 21:46:48 所属栏目:大数据 来源:网络整理
导读:在许多perl脚本中(特别是在着名的CPAN发行版中),我找到了以下代码: eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'if 0; # not running under some shell 我想知道它是为了什么? 谢谢. 解决方法 有些系统在脚本开头没有识别#!/usr/bin/perl行,因此尝试在
在许多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“$@”}}.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读