1. 程式人生 > >shell中指令碼與函式的使用策略

shell中指令碼與函式的使用策略

指令碼:執行的副作用不影響父環境,開闢了fork子程序;

函式:副作用,定義的變數,資料預設直接新增到了呼叫者的環境,也是它自己的環境;不想副作用影響呼叫者環境,就必須主動用local修飾;

 

指令碼可以使用source退化為函式;

儘量使用指令碼,而不是函式,除非函式本身就是系統級別的作用範圍;

使用指令碼的好處                

  1.把函式封裝在指令碼中可以形成類似於檔案範圍的訪問隔離;  

  2.指令碼是檔案級別的東西,檔案目錄,絕對路徑本身就給它帶來版本區分,作用範圍劃分的優勢.

  3.linux檔案有快取機制,指令碼不會明顯的比記憶體中的函式慢,而且4.2以上版本的bash還可能直接把命令名和指令碼路徑hash繫結.

  4.函式從檔案載入到環境後,修改函式需要重寫後需要重新載入.指令碼檔案不存在這個步驟. 函式也是要用指令碼檔案落地到磁碟的.