ubuntu下source、sh、bash、./執行腳本的區別詳細介紹

ubuntu下source、sh、bash、./執行腳本的區別
1.source命令用法:
  source FileName
  作用:在當前bash環境下讀取並執行FileName中的命令。該filename文件可以無"執行權限"
    注:該命令通常用命令“.”來替代。
    如:source .bash_profile   
        . .bash_profile兩者等效。
    source(或點)命令通常用於重新執行剛修改的初始化文檔。
    source命令(從 C Shell 而來)是bash shell的內置命令。
    點命令,就是個點符號,(從Bourne Shell而來)。
    source的程序主體是bash,腳本中的$0變量的值是bash,而且由於作用於當前bash環境,腳本中set的變量將直接起效
2 sh, bash的命令用法:
     sh/bash FileName
     作用:打開一個子shell來讀取並執行FileName中命令。該filename文件可以無"執行權限"
     注:運行一個shell腳本時會啓動另一個命令解釋器.
         每個shell腳本有效地運行在父shell(parent shell)的一個子進程裏.
            這個父shell是指在一個控制終端或在一個xterm窗口中給你命令指示符的進程.
         shell腳本也可以啓動他自已的子進程.
            這些子shell(即子進程)使腳本並行地,有效率地地同時運行腳本內的多個子任務.
    在ubuntu中sh只是bash的一個鏈接。  
    由於是在子shell中執行,腳本設置的變量不會影響當前shell。
3、./的命令用法:
     ./FileName
     作用:打開一個子shell來讀取並執行FileName中命令。該filename文件需要"執行權限"
     注:運行一個shell腳本時會啓動另一個命令解釋器.
         每個shell腳本有效地運行在父shell(parent shell)的一個子進程裏.
            這個父shell是指在一個控制終端或在一個xterm窗口中給你命令指示符的進程.
         shell腳本也可以啓動他自已的子進程.
            這些子shell(即子進程)使腳本並行地,有效率地地同時運行腳本內的多個子任務.
    由於是在子shell中執行,腳本設置的變量不會影響當前shell。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章