本文主要介紹 export/exec/source/.函式的使用
1. linux 登陸時候的 shell
linux 系統登陸時候的 shell 是一個行程。在這個行程中執行其它 shell 指令碼,則會開啟新的行程。 在新的行程中執行的 shell,其變數是沒有沒有辦法被父行程(當前 shell)直接讀取的。這時候可以用 export 或者 source 的方式來讀取。
source 會在當前行程執行指令碼,而不是新開一個。
一般修改環境變數之後,如修改~/.bashrc之後,需要執行source ~/.bashrc來使得其中的環境變數生效。
而在~/.bashrc中新增環境變數的方式就是export VAR=value。
實際上,source命令又可以用點.來代替。
2. exec 命令
那麼exec又是什麼?exec是另外一條命令。
exec 執行完成之後,就會退出當前 shell。
使用sh或者bash執行的方式,則會新開一個執行緒,在新的執行緒中執行。
使用source或者.的方式,則不會新開執行緒。只是在當前執行緒中從上往下執行程式碼。
如果去網上搜尋 linux shell exec,很容易找到 exec 函式族的資訊。區別就是 exec 函式族介紹的是 exec 這一類可以用在 c++中的程式碼。而不是講的 linux 的命令,雖然他們之間有千絲萬縷的聯繫。
3. export
使用 export 命令時候,則可以將子行程中的變數,讓父行程也能訪問到。
總結
本文介紹了shell中的三個函式的使用: source/. 會在當前行程中執行命令;exec會在新的行程中執行命令;export用於擴充變數。