gpt4 book ai didi

perl - 我可以在shebang行中将perl的开关与/bin/env一起使用吗?

转载 作者:行者123 更新时间:2023-12-03 13:41:58 24 4
gpt4 key购买 nike

我想使用perl -w运行env。在命令行上可以正常工作:

$ /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无法理解我传递给 -wperl标志。怎么了?

最佳答案

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

关于perl - 我可以在shebang行中将perl的开关与/bin/env一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570183/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com