linux - 有人能告诉我这个代码片段的作用吗

标签 linux perl shell variables environment

我试图理解下面提到的代码片段,目前我被困在第3行,经过大量挖掘后,我知道 $MYPERL 是定义/定位 perl 二进制文件的地方,而 $PERLDB 是 perl 调试器 i,e -d:ptkdb ,基本上这是一个 perl 脚本,以及编写此代码的人如何将其包装以使用最新的 perl 版本。有人可以告诉我如何更改 MYPERL 变量值/home/Desktop/goudar/perl/并执行脚本的其余部分吗?

#!/bin/sh
# -*- cperl -*-
exec $MYPERL -x $PERLDB -wS $0 ${1+"$@"}
#!perl
#line 6

### perl 
use Cwd;
use Data::Dumper;
use List::MoreUtils qw/ uniq /;
use JSON;
use Mojo::JSON;

#rest of the code go here#

最佳答案

can someone tell what this code snippet does

它使用 env var MYPERL 指定的 Perl 解释器执行嵌入的 Perl 脚本。 env var PERLDB 中指定的选项(如果有)将传递给解释器。警告已全局启用。

how i can change MYPERL variable value /home/Desktop/goudar/perl/ and execute rest of the script

如果启动脚本的进程是基于 bourne 的,那么

export MYPERL=/home/Desktop/goudar/perl/

也就是说,我不知道为什么要将该值分配给 MYPERL env 变量,因为脚本期望它是 Perl 解释器的路径。

关于linux - 有人能告诉我这个代码片段的作用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36126796/

相关文章:

linux - 检查 docker-compose 服务是否正在运行

perl - 如何确定是什么 Perl 模块导致 "undefined symbol: Perl_Tstack_sp_ptr?"

perl - 将 ArrayRef 解包为 X 个单独的参数

bash - Bash 脚本中的等待和循环条件

Linux - 替换字符串

linux - 如何查找不包括符号链接(symbolic link)的文件?

python - os.walk 在 Mac 和 Linux 上排序不同的文件夹?

linux - 查找列中唯一值的数量

perl - Perl 如何解析未引用的裸词?

linux - 通过 Jenkins 在 shell 中执行 "pkill"- 构建失败