source命令在shell指令碼中執行不生效的原因

2022-08-19 02:51:08 字數 332 閱讀 5700

最近發現,把我原來編譯安裝mysql的命令寫到指令碼裡,然後執行,source命令執行總是不生效。

查了下資料,算是知道了原因,在此記錄一下。

使用bash 指令碼名方式來執行指令碼,這種方式會啟動乙個子shell,在子shell中執行指令碼裡面的語句,該子shell繼承父shell的環境變數,但是執行的結果只在子shell中有效,不會返回給父shell。

解決方法:使用source 指令碼名來呼叫指令碼。

參考:

編譯安裝mysql:

shell 函式和source命令用法

source命令可以在乙個指令碼裡載入另乙個指令碼,下面舉個例子 首先我們定義了乙個函式指令碼,名字叫myfunc.sh 如下 bin bash function square function cube 然後我們再定義另外乙個指令碼,叫caluate bin bash source myfunc....

shell指令碼執行的原理(source命令等)

shell英文意思是外殼,使用者可以通過shell和作業系統互動,通俗的講shell就是乙個直譯器,當我們輸入命令shell就解釋執行,shell有很多版本,我們一般使用的都是bash,在linux輸入一條命令可以檢視當前正在使用的shell echo shell 螢幕會出現 bin bashshe...

source 命令 命令

source 命令 從 c shell 而來 是 bash shell 的內建命令。點命令 就是乙個點符號.從 bourne shell 而來 是 source 的另一名稱。這兩個命令都以乙個指令碼檔名為引數,該指令碼將作為當前 shell 的環境執行,即不會啟動乙個新的子程序。所有在指令碼中設定的...