我有一个希望能够从命令行运行的 Perl 脚本。我可以自己完美地运行它。谁能看到我在这里做错了什么?
这是我尝试过的事情
$ ln -s slice.pl /bin
$ ln -s slice.pl /usr/bin
$ ln -s slice.pl /bin/slice
$ ln -s slice.pl /usr/bin/slice
$ slice
$ slice: command not found
符号链接必须是chmod +x 吗?原文件是。
线索就是command not found
错误。如果您的 shell 正在查找slice.pl
,它会抱怨解释器错误或权限错误。
清除 shell 的 PATH 查找缓存。,bash
运行
$ hash -r
或使用 C shell 衍生物(例如, tcsh
),运行
% rehash
在此之后,您将能够运行您的slice
命令。
与文件扩展名的关联是 DOS 式的约定。在 Unix 中,调用你的程序是什么,即, slice
,并给程序一个 shebang 行 ( #!
) 来告诉操作系统如何执行它。
你需要像这样调用它:
$ ln -s "`pwd`"/slice.pl /bin/slice
$ slice
它失败了,因为链接必须正确指向脚本。
chmod a+rx slice.pl
确保这是您脚本中的第一个赞
#!/usr/bin/perl
前提是,它确实是通向 perl 的路径。which perl
将为您提供通往perl
.
确保文件使用 unix 行尾 (0A) 而不是 Windows 行尾 (0D 0A),尤其是在 shebang ( #!
) 行上。