109
|
Dr. Hans-Peter Störr · 技术社区 · 14 年前 |
1
24
这对我来说似乎很管用。
注意
起初,我只是试着
在shell脚本中
|
2
156
shebang线从未被指定为POSIX、SUS、LSB或任何其他规范的一部分。阿飞,它甚至没有适当的文件。
对于它的作用有一个大致的共识:在
谢天谢地,1。和4。好像已经死了,但是3。是相当广泛的,所以你不能仅仅依靠能够通过一个以上的论点。
而且由于命令的位置在POSIX或SUS中也没有指定,因此通常通过传递可执行文件的
名称
到
[很明显,这个
仍然
假设一个特定的路径
也就是说你不能用 任何 论据 完全 . |
3
12
我遇到了同样的问题,由于shebang(至少在Linux上)处理空白的方式,没有明显的解决方案。 但是,你可以在shebang中传递几个选项,只要它们是 空头期权 他们可以是 串联的 (GNU方式)。 例如,你不能
但是你可以
显然,只有当选项具有短等价物且不带参数时,这才有效。 |
4
12
在Cygwin和Linux下,shebang路径解析为一个参数后的所有内容都被解析到程序中。
可以用另一个
这将执行
|
5
12
虽然不是完全可移植的,但从coreutils 8.30和 according to its documentation 您将能够使用:
因此:
你将得到:
如果你好奇的话
原始答案 here . |
6
5
上面的shebang技巧比
|
7
3
在gawk手册(http://www.gnu.org/manual/gawk/gawk.html)中,第1.14节的末尾注意,从shebang行运行gawk时,只应使用一个参数。它说,操作系统将把所有经过“目瞪口呆”之路的东西当作一个单独的论点。也许有另一种方法可以指定
|
8
3
为什么不使用
(-当然也可以通过例如。
|
9
0
只是为了好玩:下面有一个非常奇怪的解决方案,它通过文件描述符3和4重新路由stdin和程序。您还可以为脚本创建一个临时文件。
有一件事很烦人:shell在脚本上进行变量扩展,因此必须引用每个$(如脚本第二行中所做的)并且可能不止这些。 |
10
-1
对于便携式解决方案,请使用
注:
不
|