4

可能重复:
如何将多个参数与shebang(即#!)一起使用?

如何使#!语句接受带有参数的参数?它似乎将它们作为一个参数集中在一起,而不是像往常一样在空间上拆分。

举这个人为的例子:

$ cat /tmp/echo
#!/bin/echo -n
$ /tmp/echo
/tmp/echo$

效果很好,并且在末尾没有换行输出文件名。但是这个:

$ cat /tmp/echo
#!/bin/echo -n hi
$ /tmp/echo
-n hi /tmp/echo
$

杀死-narg。

我可以做的一个技巧是制作另一个 shell 脚本,它只使用我想要的参数执行我想要的第一个脚本,但如果我不需要它们,我宁愿不添加额外的依赖项。

4

1 回答 1

2

显然没有针对此的 POSIX 标准,但是许多(可能是大多数)*nix 系统只允许您向 shabang 中调用的程序发送一个参数。因此 using#!/bin/echo -n hi实际上与 running 相同/bin/echo "-n hi" /path/to/script

有关更详尽的解释,请参阅此 SO 答案。

于 2012-12-08T20:46:38.843 回答