source 和sh 區別

個人覺得source這個命令主要是載入資源或者,sh主要進行執行腳本

 

sh新建一個子shell進程,變量在主shell中無法獲取 source在當前shell中執行腳本,變量在主shell即當前shell中可以獲取
例子:

  1. 新建一個test.sh腳本,內容爲:A=1 
  2. 然後使其可執行chmod +x test.sh 
  3. 運行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了 文件要有執行權限source 和sh 區別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章