最近發現,把我原來編譯安裝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 的環境執行,即不會啟動乙個新的子程序。所有在指令碼中設定的...