看板Linux
标 题Re: [问题]当source遇上$0变数时...
发信站SayYA 资讯站 (Sun Sep 7 06:39:38 2008)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ncu!News.Math.NCTU!SayYa
※ 引述《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