linux shell 中 如何处理空格的路径?

linux shell 中 如何处理空格的路径?,第1张

#/bin/bash

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而不要用点号。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7228308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存