※ 引述《kenduest (小州)》之銘言:
> ※ 引述《ju22 (蹲下來是為了跳更遠)》之銘言:
> > hi,everybody
> > 在shell script當中 $0這個內建變數代表的是
> > shell script檔案名稱
> > 用 ./shellscript.sh 或 bash shellscript.sh
> > 來執行時,可以正確地把shell script裡面的
> > echo $0命令顯示成
> > ./shellscript.sh
> > 和
> > shellscript.sh
> > 但是當我測試時,
> > 用source(不fork subshell,以目前的shell來執行)命令執行時
> > $source shellscript.sh
> > (或和source 有相同意義的 ".")
> > $. shellscript.sh
> > 在echo $0的命令執行後
> > 卻顯示
> > -bash
> > 請問這是什麼意義呢??
> > 為什麼會這樣呢??
> > thanks!!
> . 與 source 表示以目前該 shell 來讀入執行,所以 script 只是
> 一個很單純的文字檔進而被 shell 讀入使用而已,所以取 $0 當然
> 是目前 shell 的程式檔名。
hi,kenduest
所以會產生這種差別的關鍵我在想是不是因為有無fork subshell來執行呢??
因為如果用 bash shellscript.sh 來執行的話,會先fork subshell
再來也是一樣很單純地將 shellscript.sh 視為文字檔進而被subshell
讀入使用....
thanks!!
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: 61.228.99.144
討論串 (同標題文章)