2009-11-08 72 views
34

我想寫一個簡單的bash腳本來充當可執行文件的包裝。如何將腳本收到的所有參數傳遞給可執行文件?我試圖將bash腳本參數傳遞給子進程不變

/the/exe [email protected] 

但這不加引號的參數,例如工作。

./myscript "one big parameter" 

運行

/the/exe one big parameter 

這是不一樣的東西。

回答

49

當一個shell腳本環繞一個可執行文件,如果你不想執行完成後,做任何事情(這對包裝腳本一個共同的情況下,在我的經驗),調用可執行程序的正確方法是:

exec /the/exe "[email protected]" 

exec內置告訴shell只是把控制權交給可執行沒有分叉。

實際上,這可以防止無用的shell進程在系統中掛起,直到被包裝的進程終止。

這也意味着在exec命令後沒有命令可以執行。

+0

優秀,不知道 - 謝謝! – EMP 2009-11-08 22:34:34