乍看之下 . xxx.sh跟 bash xxx.sh都可子執行xxx.sh
但兩者有些不同
. xxx.sh
等同於 source xxx.sh
在目前的shell 下執行 xxx.sh內的內容,等於把 xxx.sh貼過來當前的shell執行
如果shell內有去取 $0 會得到 bash
echo $BASHPID會得到跟外面一樣的$BASHPID
要取得真正script 路徑要用 $BASH_SOURCE
bash xxx.sh
在新的bash執行xxx.sh
$0=$BASH_SOURCE=xxx.sh
也會有不同的$BASHPID
在新的shell中,變數與原本的shell並不互通,所有的行為都只做用在新開的bash中,包括function的宣告
沒有留言:
張貼留言