LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 803|回复: 4

弱问循环的问题

[复制链接]
发表于 2007-6-25 23:28:35 | 显示全部楼层 |阅读模式
如果是for a in '1 2 3'; do ls ; done
只见到一次ls结果
如果是for a in '1 2 3'; do mkdir $a ; done
能建立3个目录
是什么原因?
因为我写了个wget命令里面,do里面只执行了1次,郁闷。
发表于 2007-6-26 07:44:36 | 显示全部楼层
'1 2 3' 在for循环中只表示一个值
那么 for a in '1 2 3' 只循环一次,所以ls的只有一次结果
而mkdir 也只是执行了一次,不过 mkdir 1 2 3却会生成三个目录

如果需要执行三次,那么需要把 '  去掉
for a in 1 2 3 ; do ls ; done
for a in 1 2 3 ; do mkdir $a ; done
回复 支持 反对

使用道具 举报

发表于 2007-6-26 10:06:11 | 显示全部楼层
bash编程
一定要注意变量需要加上引号

对比
for a in "1 2 3"; do mkdir $a; done
for a in "1 2 3"; do mkdir "$a"; done
回复 支持 反对

使用道具 举报

发表于 2007-6-27 11:39:06 | 显示全部楼层
2楼回答得很清楚
3楼的和楼主问的问题有关系吗?
回复 支持 反对

使用道具 举报

发表于 2007-6-27 14:06:45 | 显示全部楼层
被问得很无奈啊。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表