我在另一个答案中读到,我无法将参数传递给解释器/usr/bin/env
:
另一个潜在的问题是该
#!/usr/bin/env
技巧不允许您将参数传递给解释器(脚本名称除外,该名称是隐式传递的)。
然而,它看起来像我可以,因为awk
是破的时候,我不给它的-f
标志和它的固定,当我做给它的-f
标志,而使用/usr/bin/env
:
首先,不带-f
标志:
$ cat wrap_in_quotes
#!/usr/bin/env awk
# wrap each line in quotes
# usage: wrap_in_quotes [ file ... ]
{ print "\""$0"\"" }
$ echo foobar | ./wrap_in_quotes
awk: syntax error at source line 1
context is
>>> . <<< /wrap_in_quotes
awk: bailing out at source line 1
二,带有-f
标志:
$ vim wrap_in_quotes
$ cat wrap_in_quotes
#!/usr/bin/env awk -f
# wrap each line in quotes
# usage: wrap_in_quotes [ file ... ]
{ print "\""$0"\"" }
$ echo foobar | ./wrap_in_quotes
"foobar"
-f
标志传递给awk
?我正在跑步macOS
:
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.12.1
BuildVersion: 16B2657
某些Unices,尤其是macOS(直到2005年,FreeBSD)才允许这样做,而Linux则不允许。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句