我有一个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?原始文件是。
答案 0 :(得分:2)
线索是command not found
错误。如果您的shell发现slice.pl
,它会抱怨一个糟糕的解释器或权限错误。
清除shell的PATH查找缓存。使用bash
,运行
$ hash -r
或使用C shell派生词(例如,tcsh
),运行
% rehash
在此之后,您将能够运行slice
命令。
与文件扩展名的关联是DOS-ish约定。使用Unix,调用你的程序是什么, ie ,slice
,并给程序一个shebang行(#!
)告诉操作系统如何执行它。 / p>
答案 1 :(得分:2)
你需要像这样调用它:
$ ln -s "`pwd`"/slice.pl /bin/slice
$ slice
失败,因为链接必须正确指向脚本。
答案 2 :(得分:1)
chmod a+rx slice.pl
确保这是您脚本中的第一个
#!/usr/bin/perl
只要它确实是perl的路径。 which perl
会为您提供perl
。
确保文件使用unix行结尾(0A)而不是Windows行结尾(0D 0A),尤其是在shebang(#!
)行。