文档章节

第3章 shell结构化命令------------(for命令与使用实例)

henni_719
 henni_719
发布于 2017/04/22 17:24
字数 724
阅读 5
收藏 0

3.4  for命令

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

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

for var in list
do
      commands
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/*
do
  echo $fl
done

echo "for var in list;do"
for fl in $HOME/*;do
  echo $fl
done

echo "list中带有单引号"
for wd in I don't know if this'll work
do
  echo $wd
done

echo "list中使用转义字符!"
for wd in I don\'t know if "this'll" work
do
  echo $wd
done

echo "list中带有空格!"
for city in Nevade New Hampshire New Mexico New York North Carolina
do
  echo $city
done

echo "对list表中在一起的使用双引号!"
for city in Nevade "New Hampshire" "New Mexico" "New York" "North Carolina"
do
  echo $city
done

本文转载自:http://blog.csdn.net/henni_719/article/details/53436141

henni_719
粉丝 2
博文 466
码字总数 343938
作品 0
信阳
QA/测试工程师
私信 提问
Shell资料

《Shell脚本学习指南》 关键字: shell 《Shell脚本学习指南》 在互动网上可以下载样章 【内容简介】 Shell脚本编程(scripting)的技巧永远不会过时:它们可以让UNIX充分发挥其真实的潜能。对...

小编
2009/06/16
933
1
shell学习之if-then语法

结构化命令允许你改变程序执行的顺序。在bash shell中有不少结构化命令,我们会逐个研究,先来看一下if-then。 bash shell的if语句会运行if后面的那个命令。如果该命令的退出状态码(参见第1...

woshixin
2018/08/16
11
0
更多的结构化命令(第十三章)

1. for命令 for命令的基本格式 for VAR in LIST #VAR为变量,LIST为指定队列do COMMAND #当VAR存在时执行COMMANDdone 1.1 读取列表中的值 [root@localhost test]# vi test.sh !/bin/bash Bas...

wlwlwl890
2017/08/07
0
0
Lucene笔记系列(1)——Lucene的理论基础之全文检索

本系列开始学习Lucene。 在我们处理的数据当中,分为三类数据: 结构化数据:具有固定格式或限定长度的数据,如我们的数据库中的数据 非结构化数据:无固定格式、无固定长度的数据,如我们w...

HappyBKs
2015/08/18
200
0
《精通移动app测试实战:技术、工具和案例》图书目录

图书相关链接: 京东网:http://item.jd.com/11891239.html 当当网:http://product.dangdang.com/23924601.html 亚马逊:https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B01D10NSKE 互动网:......

fish_yy
2016/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 2 实战:使用 Spring Boot Admin 监控你的应用

1. 前言 生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...

码农小胖哥
今天
6
0
ZetCode 教程翻译计划正式启动 | ApacheCN

原文:ZetCode 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。 ApacheCN 学习资源 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 ...

ApacheCN_飞龙
今天
4
0
CSS定位

CSS定位 relative相对定位 absolute绝对定位 fixed和sticky及zIndex relative相对定位 position特性:css position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则...

studywin
今天
7
0
从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
7
0
程序性能checklist

程序性能checklist

Moks角木
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部