例如以下shell腳本cd.sh 它的目的是把當前終端切換到/mnt/hgfs/OSP/client目錄下。shell
#!/bin/shspa
cd /mnt/hgfs/OSP/client變量
pwdcli
執行方法一: ./cd.sh 終端
結果:目錄沒有切換,可是會在終端上打印一行:/mnt/hgfs/OSP/client方法
解釋:這樣執行的話終端會產生一個子shell,子shell去執行個人腳本,在子shell中已經切換了目錄了,可是子shell一旦執行完,立刻退出,子shell中的變量和操做所有都收回。回到終端根本就看不到這個過程的變化。總結
執行方法二:source cd.sh腳本
結果:目錄被切換到/mnt/hgfs/OSP/client,且在終端上打印一行:/mnt/hgfs/OSP/client生成
解釋:這時候就是直接在當前終端的shell執行腳本了,沒有生成子shell,執行的結果就是輸出命令,而且切換了目錄
總結:shell 腳本有兩種執行的方法,一種是新產生一個shell,而後執行相應的shell腳本;一種是在當前shell下執行,再也不啓用其餘shell。