2012-12-08 100 views
4
參數

可能重複:
how to use multiple arguments with a shebang (i.e. #!)?Hashbang將不支持帶參數

我怎樣才能讓一個#!聲明接受帶有參數的PARAM?它似乎將它們全部合併爲一個參數,而不像往常一樣在空間上分裂。

拿這個人爲的例子:

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

的偉大工程,結尾沒有新行輸出的文件名。但是這一個:

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

殺死-n arg。

一分劈我能做的就是讓另一個shell腳本,只是高管我想我要的PARAMS的第一個腳本,但如果我不需要他們,我寧願不添加額外的依賴關係。

+0

對於我來說,第一個例子就像你和你一樣的第二部作品目的(的Mac OS X山獅,慶典3.2.48(1)) –

+0

哦,太好了。它依賴於操作系統?我正在使用CentOS版本5.2 –

回答

2

所以顯然是不適合這個POSIX標準,但很多(可能是大部分)* nix系統只允許您以一個參數發送給在shabang調用該程序。因此使用#!/bin/echo -n hi與運行/bin/echo "-n hi" /path/to/script實際上是相同的。

this SO answer一個更詳盡的解釋。