第3章 shell结构化命令------------(for命令与使用实例)
来源:互联网 发布:武汉java 开发前景 编辑:程序博客网 时间:2024/05/22 12:32
3.4 for命令
重复一系列的命令是一种常见的变成实践。通常需要重复一组命令直到满足一个特定的条件。bash shell提供for命令,用于创建通过一系列值重复的循环。每次重复使用系列中的一个值执行一个定义的命令集。
bash shell for命令的基本格式如下:
for var in listdo commandsdone
在参数list中提供一系列用于迭代的值。指定列表中的值有几种不同的方法。在每次迭代中,变量var包含列表的当前值。第一次迭代使用列表中的第一项,第二次迭代使用第二项,依次类推直到列表中的所有项都被使用为止。
进入do和done语句之间的命令可以是一条或多条的标准bash shell命令。在命令中,变量$var 包含当前迭代的列表项值。如果愿意,可以将do语句与for语句放在同一行,但是必须使用分号将它与列表项分开:for var in list ; do。
3.4.1 读取列表
for命令的最基本使用方法是通过在for命令中定义一列值来迭代。每次for命令通过提供的值列表进行迭代时,它将列表中的下一个值赋值给变量。最后一次迭代之后,变量在shell脚本的其他部分中任然有效,它仍然是迭代的最后一个值。
当shell看到列表值当中的单引号,并试图用它们来定义一个单独的数据值,它破坏了list中的过程。有两种方法解决这个问题:
Ø 使用转义字符(\)来转义单引号
Ø 使用双引号来定义使用单引号的值
这两种方法都可以解决列表中存在单引号和双引号的问题。
另一个问题是运行多字值。for循环认为每个值都用空格分隔,如果包含空格的数据值,就遇到另一个问题。如果在个别的数据值中有空格,必须使用双引号将它们包围起来。使用双引号包围值时,shell不会将双引号作为值的一部分。
#!/bin/bash#for命令读取列表for fl in $HOME/*do echo $fldoneecho "for var in list;do"for fl in $HOME/*;do echo $fldoneecho "list中带有单引号"for wd in I don't know if this'll workdo echo $wddoneecho "list中使用转义字符!"for wd in I don\'t know if "this'll" workdo echo $wddoneecho "list中带有空格!"for city in Nevade New Hampshire New Mexico New York North Carolinado echo $citydoneecho "对list表中在一起的使用双引号!"for city in Nevade "New Hampshire" "New Mexico" "New York" "North Carolina"do echo $citydone
- 第3章 shell结构化命令------------(for命令与使用实例)
- 第3章 shell结构化命令------------( 双方括号命令及操作实例、case命令)
- 第3章 shell结构化命令------------( 双圆括号命令及操作实例)
- 第3章 shell结构化命令------------(C式的for循环)
- 《Linux命令行与shell脚本》笔记--第11章:使用结构化命令
- 第3章 shell结构化命令------------(文件数据的循环与控制循环)
- 第三章:shell结构化命令 for & while循环
- 第11章 使用结构化命令
- 第12章 使用结构化命令
- 《Linux命令行与shell脚本》笔记--第12章:更多结构化命令
- Shell循环与结构化命令
- shell 结构化命令
- 第3章 shell结构化命令------------(while、until循环,九九乘法表)
- 第3章 shell结构化命令------------(shell的数值比较、shell的字符串比较、shell的文件比较、shell的条件组合操作)
- 脚本shell中的tr 命令使用与实例
- linux Shell 结构化命令
- Shell脚本--结构化命令
- shell---ch13 结构化命令
- Parcelable接口使用
- JAVA AES算法加密字符串
- 项目中接入微信tinker时踩的坑
- Android照片墙应用实现,再多的图片也不怕崩溃
- Swift 语法学习总结
- 第3章 shell结构化命令------------(for命令与使用实例)
- FragmentTabHost结合ViewPager使用
- Java实现布隆过滤器(已爬URL过滤)
- C#ListView失去焦点选中行不能高亮显示的问题解决
- PS编辑按钮图片(修改或添加文字等)
- 第14周 oj 2 输入一个数插入有序数组中
- 出栈序列的遍历
- 关于环信集成表情界面不出现的问题?
- Cassandra学习笔记 --- Connection error: ('Unable to connect to any servers', {'127.0.0.1': ...