for语法格式

for var in list;do

  commands

done

其中list可以包含:

1) 直接写

for alpha in a b c d;do
echo $alpha
done

2)变量

list="a b c d"
for alpha in $list;do
echo $alpha
done

在shell执行的时候会进行变量替换,上面的list变量替换之后,for循环的形式和1中的形式一模一样。但是如果为$list加上了引号,即如果写为下面的形式:

list="a b c d"
for alpha in "$list";do
echo $list
done

shell变量替换之后为:

list="a b c d"
for alpha in "a b c d";do
echo $list
done

这时输出就只有一行a b c d。

3)shell命令

for alpha in `cat alpha.txt`;do
echo $alpha
done

假设alpha.txt文件里面的内容就是a b c d,那么通过使用``符先将文件内容读出,再进行迭代,结果和1一样

4)读取文件目录

for file in $HOME/a/*;do
echo $file
done

上面的代码先进行通配符glob扩展,假设目录a下有2个文件1.txt, 2.txt,一个文件夹b,那么经过扩展之后实际为:

for file in $HOME/a/.txt $HOME/a/.txt $HOME/a/b;do
echo $file
done

此时file的值依次为$HOME/a/1.txt,$HOME/a/2.txt, $HOME/a/b。

但是假设a不是一个目录,是一个文件,此时通配符扩展会失败,此时file的值直接就是$HOME/a/*。

这里还需要注意的一个地方是,这里进行的是shell glob的扩展,因此扩展的时候不能越过文件边界,换句欢说,如果b目录下面还有文件,这些文件是无法扩展出来的,即扩展无法越过文件夹b

IFS

for循环当中,list的被如何分割就是由IFS决定的,默认情形下,IFS的值是:

Tab

空格

换行

你可以重新给IFS赋值,:

IFS=: #此时分隔符为:
IFS=:; #此时分隔符为:和;

C风格的for循环

for (( i = 0; i < 10; i++ ));do

  commands

done

这里的风格和C中一样,其中的变量i可以是任何变量

while 循环

while command;do

  commands

done

其中的command可以是shell command,也可以test condition。如果command的返回值为0或者测试成立,则执行,否则不执行。

这里需要注意的是,while可以使用多个条件,但是只有最后一个条件起作用:

var=
while [ $var -lt ];[ $var -gt ];do
echo $var
done

在这段代码中,虽然第一个条件一开始就不成立,但是起作用的是最后一个条件,因此,这是一个无线循环

until循环

until command;do

  commnds

done

和while一样,唯一不同的是如果command返回0,则不执行,否则就执行

shell中的循环语句的更多相关文章

  1. Shell中的循环语句实例

    1.for循环语句实例1.1 最基本的for循环 #!/bin/bash for x in one two three four do     echo number $x done 注:" ...

  2. shell中的循环语句while

    循环语句的结构: ------------| while 条件        | do | 需要执行的命令   | done  | -----------| 例如: 1.while一直循环 2.whi ...

  3. shell脚本中select循环语句用法

    shell脚本中select循环语句 1. 脚本中select的语法格式 select VAR in LIST do command1 command2 ... ... commandN done s ...

  4. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

  5. shell编程之循环语句for / while / until

    shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...

  6. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

  7. shell中的循环

    shell中的循环 for循环 类似于C语言的步长控制 例如: ;i<=;i++)); ); done 将1到10,依次乘以4,然后打印出来. 这里顺便提一下,shell里面表达式的计算,可以有 ...

  8. shell中for循环

    shell中for循环总结 最常用的就是遍历操作某一类文件,比如批量建索引. for i in `ls` do samtools faidx $i done 注意:for末尾不需要冒号(:),循环的代 ...

  9. shell中for循环总结

    关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1. for((i=1;i<=10;i++));d ...

随机推荐

  1. 轻松完成WAP手机网站搭建

    用PHPCMS最新发布的V9搭建了PHPCMS研究中心网站(http://phpcms.org.cn)完成后,有用户提出手机访问的问题,于是着手搭建WAP无线站(wap.phpcms.org.cn). ...

  2. LAMP 搭建wordpress部署教程贴.

    LAMP 搭建wordpress部署教程贴.这是一篇主要将LAMP,并且通过wordpress来进行验证,演示.如何去部署PHP CMS很多新手看到LAMP就很很头大,觉得很难搞,编译安装,搞了好几天 ...

  3. php 练习一 5月5日

    练习题一:通过登录者找到他的好友并显示在页面上 <title>无标题文档</title> <style type="text/css"> * { ...

  4. python文件_读取

    1.文件的读取和显示 方法1: f=open(r'G:\2.txt') print f.read() f.close() 方法2: try: t=open(r'G:\2.txt') print t.r ...

  5. win7下的iis配置

    1.配置错误 说明:在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息:无法识别的属性“targetFramework”.请注意属性名称区分 ...

  6. iOS学习之导航条NavigationControl的一些属性设置

    /** * 配置公共的属性,该属性作用于所有的导航条界面; */ - (void)configureConmmonPropety { //1.设置导航条的颜色 self.navigationContr ...

  7. Java学习笔记--Collection和Collections的区别

    转自 http://pengcqu.iteye.com/blog/492196 比较Collection 和Collections的区别.   1.java.util.Collection 是一个集合 ...

  8. hdu 相遇周期

    #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int ...

  9. 自制单片机之八……USB-ISP下载线

    现在的笔记本包括台式机都渐渐地舍弃了并口.串口:很多网友也跟我说,台式没有并口了,下载线没法用了,让我帮他想想办法.看来做个USB-ISP下载线是势在必行了. 在网上搜了下,主要有两种方案,一种是用F ...

  10. Cmake Error: your compiler "cl" was not Found .etc

    又是环境变量路径等问题,烦死人了. TIPS:请注意,控制台的窗口也有自己的环境变量,从系统环境变量和用户环境变量继承过来的,一个窗口(控制台)可以添加属于自己的环境变量(跟别的控制台窗口没关系) 解 ...