精华 | |
金钱 | BA |
威望 | 点 |
贡献值 | 点 |
爱心 | 点 |
经验 | 点 |
注册时间 | 2009-2-22 |
最后登录 | 1970-1-1 |
在线时间 | 小时 |
| |
| |
| |
|
立即注册,加入爱黑武论坛的大家庭!爱黑武,爱上搞机生活!
您需要 登录 才可以下载或查看,没有账号?注册
x
举个例子
一个文件夹中有几个文件 ,文件名有空格,,现在我要对每一个文件进行操作
3文件,他们的名字是
4314 dw
dwa .dwa
dwa adw.chm
我可以用for循环
name=`ls`
for i in $name
do echo \"$i\"
done
结果
输出的不是3文件,而是6行
4314
dw
dwa
.dwa
dwa
adw.chm 至于为什么,大家应该明白原因 所以我又试了一个这个样子的命令
for i in \"4314 dw\" \"wa .dwa\" \"wa adw.chm\"
do echo \"$i\"
done
输入结果就是3行
4314 dw
dwa .dwa
dwa adw.chm 我就耍了下小聪明,,用了下面的命令
name=`ls | sed 's/.*/\"&\"/g'`
echo $name
for i in $name
do echo \"$i\"
done
大家猜下结果会怎么样....
\"4314 dw\" \"wa .dwa\" \"wa adw.chm\"
\"4314
dw\"
\"wa
.dwa\"
\"wa
adw.chm\" 很明显name的值为\"4314 dw\" \"wa .dwa\" \"wa adw.chm\",我用name的值代入for循环,,我希望变量中的双引号起作用,,如果起作用,那么结果就会是
4314 dw
dwa .dwa
dwa adw.chm
但是变量中的双号不起作用,,
现在很多的文件夹的名字都有空格,这些空格最是郁闷,,因为我们的shell的命令是以空格作为分割,文件夹的名字有空格,就只有加双引号
但是我们把文件夹名字赋值给一个变量,在变量中 双引号就不起作用了 ,那么这个文件夹应该怎样用变量使用呢??????????? 目前我有一个十分麻烦的方法,, for i in `ls | sed -n '='`
do name=`ls | sed -n $i\\p`
echo \"$name\"
done
结果
4314 dw
dwa .dwa
dwa adw.chm
虽然功能实现了,但是我觉得十分麻烦,,希望高手指点下,,最好是 直接用 for循环代入文件夹的名字 ,这样多好呢??????????????????????? |
|