linux shell 脚本中 如何处理带空格的超长目录名? 如下:

[root@iZ94611itifZvideo]#find.-typed../净空法师./净空法师/大般若经纲要./净空法师/24小时播放(A)./净空法师/24小时播放... [root@iZ94611itifZ video]# find . -type d
.
./净空法师
./净空法师/大般若经纲要
./净空法师/24小时播放(A)
./净空法师/24小时播放(A)/2 十善业道经讲解159集 #注意 这个路径中有空格

./净空法师/24小时播放(A)/4 三时系念解2003澳洲114集 #注意 这个路径中有空格
./净空法师/24小时播放(A)/3 无量寿经94版58集 #注意 这个路径中有空格
./净空法师/24小时播放(A)/1 地藏经讲解98版101集 #注意 这个路径中有空格

[root@iZ94611itifZ video]#

有一个test.sh 脚本如下:

#/bin/bash
myhome=`pwd`
for str in `find . -type d`
do
cd$myhome
if[ `expr index "$str" "#"` -eq 0 ]
then
echo "process $str"
cd "$str"
fi
done

[root@iZ94611itifZ video]# sh test.sh
process .
process ./净空法师
process ./净空法师/大般若经纲要
process ./净空法师/24小时播放(A)
process ./净空法师/24小时播放(A)/2
test.sh: line 10: cd: ./净空法师/24小时播放(A)/2: 没有那个文件或目录 ---这里出问题了,有了空格就打不到正确的路径了!

process 十善业道经讲解159集
test.sh: line 10: cd: 十善业道经讲解159集: 没有那个文件或目录
process ./净空法师/24小时播放(A)/4
test.sh: line 10: cd: ./净空法师/24小时播放(A)/4: 没有那个文件或目录
process 三时系念解2003澳洲114集
test.sh: line 10: cd: 三时系念解2003澳洲114集: 没有那个文件或目录
process ./净空法师/24小时播放(A)/3
test.sh: line 10: cd: ./净空法师/24小时播放(A)/3: 没有那个文件或目录
process 无量寿经94版58集
test.sh: line 10: cd: 无量寿经94版58集: 没有那个文件或目录
process ./净空法师/24小时播放(A)/1
test.sh: line 10: cd: ./净空法师/24小时播放(A)/1: 没有那个文件或目录
process 地藏经讲解98版101集
test.sh: line 10: cd: 地藏经讲解98版101集: 没有那个文件或目录
[root@iZ94611itifZ video]#
展开
 我来答
yss624_
2015-06-21 · TA获得超过4.7万个赞
知道大有可为答主
回答量:9775
采纳率:77%
帮助的人:2596万
展开全部
#/bin/bash
OLDIFS=$IFS
IFS=$'\n'

myhome=`pwd`

for str in `find . -type d `
do
cd $myhome

if [ `expr index "$str" "#"` -eq 0 ]
then
echo "process $str"
cd "$str"
fi
done
IFS=$OLDIFS
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式