我正在努力将一个过时的文件从 perl 转录到 python,并且遇到了一些 perl 语法。
my $jobID = `echo \$JOBID`;
chomp($jobID);
unless ($jobID) {
print "Please specify a job\n";
exit;
}
到目前为止,我已经能够非常轻松地转录所有命令行解析,但我非常清楚这段代码到底在做什么(特别是在线声明中的 echo 1).
在 perl 脚本 cmd 行解析选项中 - 允许设置 jobID - 它声明“默认 = $JOBID”。所以我的假设是这段代码的第一行只是设置这个默认的 jobID,直到指定了一个。
如果是这种情况,为什么需要在变量默认声明中使用 echo?这是 perl 中的良好做法还是我错过了更大的画面?
我已尝试为此进行低级和高级搜索,但似乎无法通过 google ninja 找到任何有用的东西。
如果您对“回声”有任何帮助,我们将不胜感激(或对此有任何好的阅读)!
最佳答案
这是从 shell 变量获取值的一种方法。反引号 (`
) 运行 shell 命令并为您提供输出。所以 echo
在 shell 内部运行,在这种情况下它只返回一个 shell 变量。在 Perl 中获得它的更简洁的方法是像这样使用 %ENV
:
my $jobID = $ENV{'JOBID'};
这也消除了对 chomp
的需要,避免创建额外的进程,并且效率更高。
关于perl - 'echo' 在 perl 变量声明中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32467976/