【发布时间】:2023-03-21 19:46:02
【问题描述】:
我有一个 perl 脚本,第一行如下:
#!/usr/bin/env perl
我已经读到这是为了在环境中查找 perl 而执行的。但是现在,当我在命令行/usr/bin/env perl 上执行此操作时,perl 本身就会被执行(位于/usr/bin/perl)。但是当我使用./myscript.pl 启动脚本时,它显示以下错误:
/usr/bin/env: No such file or directory
这是因为找不到perl,因为我输入/usr/bin/env xxxxxx时也会出现这个错误。
有人可以解释一下我在命令行或脚本中运行它时到底有什么区别吗?
【问题讨论】:
-
#!/usr/bin/env 不是 perl 命令。查找
shebangs -
你能通过 hexdump 运行 shebang 行吗?
head -n1 myscript.pl | xxd. -
文件 /usr/bin/env 是否存在于您的系统中,并且具有执行权限:
ls -l /usr/bin/env -
能否请您发布此命令“echo $PATH”的结果?
-
也许这是你的问题? askubuntu.com/q/372672
标签: bash perl unix shebang env