如果我调用可执行脚本:
$ ./myscript
在顶部有以下定义:
#! /usr/bin/env perl
我有以下perls:
$ ls -l /usr/bin | grep perl
-rwxr-xr-x. 2 root root 8416 2010-07-09 05:18 perl --> perl5.10.0
-rwxr-xr-x. 2 root root 8416 2010-07-09 05:18 perl5.10.0
-rwxr-xr-x. 2 root root 8416 2010-07-09 05:18 perl4.10.0
是否可以设置某种环境变量(或任何其他方法)来表示所使用的perl版本为perl4.10.0
?我正在寻找一个答案,不涉及使用特定perl版本的绝对路径调用脚本,不更改符号链接,也不是特定于语言(意味着它适用于/usr/bin/env ruby
,{{1等等)。
答案 0 :(得分:3)
否 - #! /usr/bin/env perl
表示“使用执行/usr/bin/env perl
的结果作为此脚本的解释器”,因此您需要向env
(或其他任何脚本)传授额外的知识选择在命令行中调用)知道如何根据传递的参数查找可执行文件。对于匹配“perl *”的文件,/usr/bin/env perl
不会在$ PATH中查找 - 它会查找名为的'perl'的可执行文件。