天天看點

source 和sh 差別

sh建立一個子shell程序,變量在主shell中無法擷取 source在目前shell中執行腳本,變量在主shell即目前shell中可以擷取 
例子:
 1.建立一個test.sh腳本,内容為:A=1 
2.然後使其可執行chmod +x3.運作sh test.sh後,echo $A,顯示為空,因為A=1并未傳回給目前shell 
4.運作./test.sh後,也是一樣的效果 
5.運作source test.sh 或者 . test.sh,然後echo $A,則會顯示1,說明A=1的變量在目前shell中
拓展: source filename 等價于 . filename 檔案沒有執行權限也可以;
而sh file.sh 等價于 ./file.sh(執行表示目前路徑下的file.sh) 當然如果全路徑就是/xx/xx.sh了 檔案要有執行權限