Wrapper Script – 替現有指令擴充功能

Wrapper Script 在 Unix Like 環境十分常見,它不會重新建立一個新的程式,而是會讀取 input 後加入所需的功能,再將 input 直接傳送給現有的指令。以下是 wrapper script 的簡單例子:

以上 Wrapper Script 實際上沒有甚麼用途,它只是將輸入直接傳送給 /root/bin/my-script.sh,所以執行以上 Wrapper 跟執行 /root/bin/my-script.sh 是沒有分別,因為沒有加入任何新功能。如果有用過 QMail 的應該會編輯過 daemontools 的 run script, 這個 run script 就是較複雜的 Wrapper Script 例子。


以下例子會加入一個功能,會在執行 /root/bin/my-script.sh 時,把執行紀錄下來:

以上 Wrapper Script 會先紀錄執行指令的時間及帳號 UID,儲存到檔案 /home/phpini/log.txt, 然後才將所有輸入導向到 /home/phpini/test.sh 執行。

以上只是很簡單的例子,事實上 Wrapper Script 的用途很廣泛,尤其是一些不可編輯的 binary 檔。


Leave a Reply