2013-08-28 73 views
4

我有一個shell腳本,我傳遞的參數很少。 Test1.sh -a 1 -b 2 -c "One Two Three"將一個shell腳本的所有參數傳遞給另一個

Inside Test1.sh我打算以下面的方式調用另一個shell腳本。 Test2.sh $*

我想將所有參數傳遞給Test2,這些參數傳遞給Test1,並且也使用相同的格式(使用雙引號等)。 但是,傳遞給Test2的參數是 Test2.sh -a 1 -b 2 -c One Two Three 哪些不適合我。有沒有辦法繞過它,以便我可以像傳遞給Test1一樣傳遞參數。

感謝 扎比

回答

10

你需要說:

Test2.sh "[email protected]" 

參考Special Parameters

@

擴展爲位置參數,從1開始。當在雙引號內出現 擴展時,每個參數都會擴展爲單獨的單詞 。也就是說,"[email protected]"相當於"$1" "$2" ...。如果 雙引號擴展出現在單詞中,則將 第一個參數的擴展連接到原始單詞 的開頭部分,並將最後一個參數的擴展連接到原始單詞的最後一個 部分。當沒有位置參數時, "[email protected]"[email protected]展開爲空(即,它們被移除)。

的手冊說:

"$*"相當於"$1c$2c...",其中cIFS變量的值的第一個字符 。

它解釋了你正在觀察的結果。

相關問題