热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Shell结构化命令for命令的使用实例

本文介绍了Shell中for命令的基本格式和用法,通过提供一个值列表来迭代执行一系列命令。同时还介绍了如何读取列表中的值,并给出了for命令与其他命令的结合使用示例。

3.4  for命令

         重复一系列的命令是一种常见的变成实践。通常需要重复一组命令直到满足一个特定的条件。bash shell提供for命令,用于创建通过一系列值重复的循环。每次重复使用系列中的一个值执行一个定义的命令集。

         bash shell for命令的基本格式如下:          

for var in list
docommands
done

         在参数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/*
doecho $fl
doneecho "for var in list;do"
for fl in $HOME/*;doecho $fl
doneecho "list中带有单引号"
for wd in I don't know if this'll work
doecho $wd
doneecho "list中使用转义字符!"
for wd in I don\'t know if "this'll" work
doecho $wd
doneecho "list中带有空格!"
for city in Nevade New Hampshire New Mexico New York North Carolina
doecho $city
doneecho "对list表中在一起的使用双引号!"
for city in Nevade "New Hampshire" "New Mexico" "New York" "North Carolina"
doecho $city
done





推荐阅读
author-avatar
mobiledu2502934511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有