詳解shell中source、sh、bash、./執行指令碼的區別

mcxiaoracle發表於2021-08-25

1、source命令用法:

  source FileName

  作用:在當前bash環境下讀取並執行FileName中的命令。該filename檔案可以無"執行許可權"

    注:該命令通常用命令“.”來替代。

    如:source .bash_profile

        . .bash_profile兩者等效。

    source(或點)命令通常用於重新執行剛修改的初始化文件。

    source命令(從 C Shell 而來)是bash shell的內建命令。

    點命令,就是個點符號,(從Bourne Shell而來)。

2、sh和bash命令用法:

     sh FileName

     bash FileName

     作用:在當前bash環境下讀取並執行FileName中的命令。該filename檔案可以無"執行許可權"

     注:兩者在執行檔案時的不同,是分別用自己的shell來跑檔案。

   sh使用“-n”選項進行shell指令碼的語法檢查,使用“-x”選項實現shell指令碼逐條語句的跟蹤,

   可以巧妙地利用shell的內建變數增強“-x”選項的輸出資訊等。


3、./的命令用法:

     ./FileName

     作用:開啟一個子shell來讀取並執行FileName中命令。

     注:執行一個shell指令碼時會啟動另一個命令直譯器.

         每個shell指令碼有效地執行在父shell(parent shell)的一個子程式裡.

            這個父shell是指在一個控制終端或在一個xterm視窗中給你命令指示符的程式.

         shell指令碼也可以啟動他自已的子程式.

            這些子shell(即子程式)使指令碼並行地,有效率地地同時執行指令碼內的多個子任務.



參考資料:



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2788612/,如需轉載,請註明出處,否則將追究法律責任。

相關文章