SAVEIFS="$IFS"
myhome=`pwd`
IFS='
'
for str in `find . -type d`
do
cd "$str"
echo "process $str"
cd $myhome
done
IFS="$SAVEIFS"
./ 点号紧跟/表示当前目录(相对路径的写法)。直接 / 表示根目录。. / 有空格的点号等同于source命令,表示在当前shell环境执行后面的命令或脚本(不加点号默认是新开一个shell执行的)。例如 . /home/test.sh 等同于 source /home/test.sh。
用source执行的脚本所做的任何改变会影响当前shell(如其中有用cd改变目录,脚本执行完后目录就变掉了);如果没用source,就不会影响当前shell。
上述两种情况结合:
. ./test.sh
表示以source方式在当前shell执行当前目录下的test.sh脚本。
对新手来说,为明显区别,建议书写的时候将第二种情况直接写作source而不要用点号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)