我可以在shebang行中使用perl的交换机和/ bin/env吗?

前端之家收集整理的这篇文章主要介绍了我可以在shebang行中使用perl的交换机和/ bin/env吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用env运行perl -w。在命令行中工作正常:
$ /bin/env perl -we 'print "Hello,world!\n"'
Hello,world!

但是它在脚本中的shebang行上不起作用:

#!/bin/env perl -w
print "Hello,world!\n";

这是错误

/bin/env: perl -w: No such file or directory

显然env不明白我传给perl的-w标志。怎么了?

解决方法

hash-bang不是一个正常的shell命令行,解析和空格处理是不同的 – 这就是你打的。看到:

> http://www.in-ulm.de/~mascheck/various/shebang/
> http://homepages.cwi.nl/~aeb/std/hashexclam-1.html#ss1.3
> http://en.wikipedia.org/wiki/Shebang_(Unix)

基本上很多/大多数unix将所有剩下的文本放在第一个空格之后变成一个参数。

所以:

#!/bin/env perl -w

相当于:

/bin/env "perl -w"

所以您需要以其他方式处理perl解释器的任何选项。即

use warnings;

(如@ Telemachus)

原文链接:https://www.f2er.com/Perl/173023.html

猜你在找的Perl相关文章