当前位置: 技术问答>linux和unix
Shell——dir的目录咋就变了呢……
来源: 互联网 发布时间:2016-11-15
本文导语: dir=$(cd $(dirname "$0");pwd) echo "dir is $dir" 这一行 father_dir=$(cd $(dirname "$0");cd ..;pwd) echo "father $father_dir" source $father_dir/OpenBook/open.sh $father_dir/OpenBook source $father_dir/DangDang/dang.sh $father_dir/DangDang source $fat...
dir=$(cd $(dirname "$0");pwd)
echo "dir is $dir" 这一行
father_dir=$(cd $(dirname "$0");cd ..;pwd)
echo "father $father_dir"
source $father_dir/OpenBook/open.sh $father_dir/OpenBook
source $father_dir/DangDang/dang.sh $father_dir/DangDang
source $father_dir/xinhua_book/run_robust.sh $father_dir/xinhua_book
echo " $dir"
我的最后一行 打印出的 dir 是/home/weiyue/xinhua_book 就是和$father_dir/xinhua_book/ 是一摸一样的 我第一行的 dir打印出的值 却和 这个不一样 第一行 打印的 dir就是当前 文件 所在的 目录, 我的问题 就是 我dir 都没动过它,它的 值怎么就变了呢…… 那 几个source 是 运行了 其他的文件
echo "dir is $dir" 这一行
father_dir=$(cd $(dirname "$0");cd ..;pwd)
echo "father $father_dir"
source $father_dir/OpenBook/open.sh $father_dir/OpenBook
source $father_dir/DangDang/dang.sh $father_dir/DangDang
source $father_dir/xinhua_book/run_robust.sh $father_dir/xinhua_book
echo " $dir"
我的最后一行 打印出的 dir 是/home/weiyue/xinhua_book 就是和$father_dir/xinhua_book/ 是一摸一样的 我第一行的 dir打印出的值 却和 这个不一样 第一行 打印的 dir就是当前 文件 所在的 目录, 我的问题 就是 我dir 都没动过它,它的 值怎么就变了呢…… 那 几个source 是 运行了 其他的文件
|
source的作用就是保证作用范围在当前执行的进程里 而不启动子进程! 你再去了解一下这个命令 它又叫.命令 可以用.来代替 这个命令本身也是bash的内建(built-in)命令
|
source 是在当前的shell环境中执行,并没有启动子进程