zoukankan      html  css  js  c++  java
  • Bash的循环结构(for和while)

    在bash有三中类型的循环结构表达方法:for,while,until。这里介绍常用的两种:for和while。

    for

    bash的for循环表达式和python的for循环表达式风格很像:

    for var in $(ls)
    do
      echo "$var"done

    取值列表有很多种表达方式,可以结合各种命令比如 ls,cat,sed等等

    也可以是各种迭代类型,比如:

    {1..100..2}: 1到100增量为2

    {a..z}: a到z的字母

    `seq 1 2 100`: 1到100增量为2

    while

    bash的while循环表达式和bash的if表达式风格类似,循环条件需要用方括号 []:

    COUNTER=0
    while [ $COUNTER -lt 10]
    do
        echo "$COUNTER"
        let COUNTER+=1
    done

    while和重定向联用

    输出重定向'>'比较好理解,就是将while后面的命令以及循环体中的标准输出重定向,例如

    while seq 0 1 10   #注意这里直接写命令就行,不需要``或者[]
    do
        echo "ok"
        sleep 1000   #这个循环是个无限循环,加sleep为了查看结果
    done>test.tx
    $cat test.txt
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ok

    注意,这里的重定向不仅打印结构体中的标准输出,而且也打印命令的输出。

    输入重定向是把文件重定向到while后面的命令中,类似于管道(pipe)

    while grep "1"
    do
    echo "This line contains 1"

    done<test.txt

    利用刚刚生成的test.txt文件,运行上述脚本的结果为:

    可以看出,虽然有两行包含字符“1”,但是结构体里的echo语句只执行了一次,这说明只要while后面的命令有输出,那么就执行结构体一次,所以这和cat | grep也没什么区别了。

     当然也可以输入输出重定向一起使用,比如上面的例子可以改为:

    while grep "1"
    do
            echo "This line contains 1"
    done<test.txt>result.txt

  • 相关阅读:
    微服务-1初识
    RESTful-5开发API
    RESTful-4使用教程
    RESTful-3架构详解
    RESTful-2一分钟理解什么是REST和RESTful
    RESTful-1概述
    Swagger-概述
    net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-2项目搭建
    net core体系-web应用程序-4asp.net core2.0 项目实战(任务管理系统)-1项目说明
    (大数 startsWith substring) Exponentiation hdu1063
  • 原文地址:https://www.cnblogs.com/liuyihua1992/p/9689295.html
Copyright © 2011-2022 走看看