Linux Source命令及指令碼的執行方式解析
當我修改了/etc/profile檔案,我想讓它立刻生效,而不用重新登入;這時就想到用source命令,如:source
/etc/profile
對source進行了學習,並且用它與sh 執行指令碼進行了對比,現在總結一下。
source命令:
source命令也稱為“點命令”,也就是一個點符號(.),是bash的內部命令。
功能:使Shell讀入指定的Shell程式檔案並依次執行檔案中的所有語句
source命令通常用於重新執行剛修改的初始化檔案,使之立即生效,而不必登出並重新登入。
用法:
source filename 或 . filename
source命令(從 C Shell 而來)是bash shell的內建命令;點命令(.),就是個點符號(從Bourne Shell而來)是source的另一名稱。
source filename 與 sh filename 及./filename執行指令碼的區別在那裡呢?
1.當shell指令碼具有可執行許可權時,用sh filename與./filename執行指令碼是沒有區別得。./filename是因為當前目錄沒有在PATH中,所有"."是用來表示當前目錄的。
2.sh filename 重新建立一個子shell,在子shell中執行指令碼里面的語句,該子shell繼承父shell的環境變數,但子shell新建的、改變的變數不會被帶回父shell,除非使用export。
3.source filename:這個命令其實只是簡單地讀取指令碼里面的語句依次在當前shell裡面執行,沒有建立新的子shell。那麼指令碼里面所有新建、改變變數的語句都會儲存在當前shell裡面。
舉例說明:
1.新建一個test.sh指令碼,內容為:A=1
2.然後使其可執行chmod +x test.sh
3.執行sh test.sh後,echo $A,顯示為空,因為A=1並未傳回給當前shell
4.執行./test.sh後,也是一樣的效果
對source進行了學習,並且用它與sh 執行指令碼進行了對比,現在總結一下。
source命令:
source命令也稱為“點命令”,也就是一個點符號(.),是bash的內部命令。
功能:使Shell讀入指定的Shell程式檔案並依次執行檔案中的所有語句
source命令通常用於重新執行剛修改的初始化檔案,使之立即生效,而不必登出並重新登入。
用法:
source filename 或 . filename
source命令(從 C Shell 而來)是bash shell的內建命令;點命令(.),就是個點符號(從Bourne Shell而來)是source的另一名稱。
source filename 與 sh filename 及./filename執行指令碼的區別在那裡呢?
1.當shell指令碼具有可執行許可權時,用sh filename與./filename執行指令碼是沒有區別得。./filename是因為當前目錄沒有在PATH中,所有"."是用來表示當前目錄的。
2.sh filename 重新建立一個子shell,在子shell中執行指令碼里面的語句,該子shell繼承父shell的環境變數,但子shell新建的、改變的變數不會被帶回父shell,除非使用export。
3.source filename:這個命令其實只是簡單地讀取指令碼里面的語句依次在當前shell裡面執行,沒有建立新的子shell。那麼指令碼里面所有新建、改變變數的語句都會儲存在當前shell裡面。
舉例說明:
1.新建一個test.sh指令碼,內容為:A=1
2.然後使其可執行chmod +x test.sh
3.執行sh test.sh後,echo $A,顯示為空,因為A=1並未傳回給當前shell
4.執行./test.sh後,也是一樣的效果
5.執行source test.sh 或者 . test.sh,然後echo $A,則會顯示1,說明A=1的變數在當前shell中
轉自:http://blog.csdn.net/wangyangkobe/article/details/6595143
相關文章
- Go執行指令碼命令用例及原始碼解析Go指令碼原始碼
- 指令碼執行方式指令碼
- Linux 定時執行指令碼、命令Linux指令碼
- 執行Shell指令碼的方式指令碼
- Linux中source命令的使用方式Linux
- linux指令碼完成重複執行的命令Linux指令碼
- LINUX 自動執行指令碼的命令配置Linux指令碼
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- 熔斷器 Hystrix 原始碼解析 —— 執行命令方式原始碼
- shell指令碼linux命令連續執行指令碼Linux
- 執行Shell指令碼的方式(轉)指令碼
- Linux中執行Shell指令碼的方式(三種方法)Linux指令碼
- Linux後臺執行指令碼命令之nohupLinux指令碼
- 詳解shell中source、sh、bash、./執行指令碼的區別指令碼
- Java執行groovy指令碼的兩種方式Java指令碼
- [Groovy]Groovy指令碼的5種執行方式指令碼
- shell指令碼中不識別source命令指令碼
- xcall叢集執行命令指令碼指令碼
- 在linux上定期執行命令、指令碼(cron,crontab,anacron)Linux指令碼
- Tivoli直接以命令方式執行db2 備份指令碼DB2指令碼
- Shell指令碼執行有哪些方式?linux系統學習指令碼Linux
- appium ios java 指令碼如何用指令執行,例如 adb 那種方式執行指令碼APPiOSJava指令碼
- Linux Shell執行source或.命令報錯'bash: ..: command not found'Linux
- Linux管理指令碼之自動執行指令碼Linux指令碼
- MySQL執行外部sql指令碼檔案的命令MySql指令碼
- linux source命令Linux
- linux source 命令Linux
- 如何在 Linux 啟動時自動執行命令或指令碼Linux指令碼
- Linux、UNIX設定開機自動執行命令、指令碼配置Linux指令碼
- Hystrix 原始碼解析 —— 命令合併執行原始碼
- 使用bat指令碼執行MySQL命令時遇到的坑BAT指令碼MySql
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- Linux定時執行.sh指令碼Linux指令碼
- Linux 後臺執行 PHP 指令碼LinuxPHP指令碼
- linux 後臺執行sql指令碼LinuxSQL指令碼
- Linux下如何執行Shell指令碼Linux指令碼
- linux下source命令Linux
- 在 Linux 命令列指令碼中執行 sudo 時自動輸入密碼Linux命令列指令碼密碼