Re: [問題]當source遇上$0變數時...

看板Linux作者時間17年前 (2008/09/07 07:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《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
文章代碼(AID): #18mmkl00 (Linux)
文章代碼(AID): #18mmkl00 (Linux)