zoukankan      html  css  js  c++  java
  • shell脚本编程-结构化命令3-while、until命令

    1、while命令

    (1)格式
        while test command; do 
            commands
        done
        while语句中的test command命令和if-then语句的相同。
        指定的test command的命令码随着循环中运行的命令改变,从而更新循环的退出状态。
    (2)举例
        $cat test
        #!/bin/bash
        #whiel command test 
        varl=3
        while [ $varl -gt 0 ]; do
            echo $varl
            varl=$[ $varl - 1 ]
        done
        $./test
        3
        2
        1

    2、until命令

        格式:
        until test command; do
            commands
        done
        until命令和while命令的工作方式完全相反。
        当test command的状态退出码为0时,循环结束。

    3、控制循环

    (1)break命令
        跳出单个循环,常用的方式是if-then语句中加入跳出条件;
        在处理多个循环时,break命令会自动处理最内层的循环;
        跳出外部循环,使用break n;n默认为1,当设为2时,跳出2层循环。
    (2)contiune命令
        在循环内部设置shell不执行命令的条件;
        命令行参数指定继续多级循环:continue n,其中n定义了循环层数,默认为1。
        #!/bin/bash
        # break and contiune
        val=0
        while [ $val -lt 15 ]; do
            val=$[ $val + 1]
            if [ $val -lt 5 ]; then
                echo "$val is too small"
                continue
            elif [ $val -gt 10 ]; then
                echo "$val is too big"
                break
            fi
        done

    4、处理循环的输出

        在循环结构中,可以使用在done后面增加管道命令或者重定向命令处理循环的输出。
        for file in /home/rich/*; do
            if [ -d "$file" ]; then
                echo "$file is a directory"
            elif 
                echo "$file is a file"
            fi
        done > output.txt
        shell脚本会将执行的结果输出到文件中而不是显示在屏幕上。
        同时在循环输出时,可以使用管道命令对执行结果进行处理,如果done | sort 排序等。
        
  • 相关阅读:
    celery定时器
    基于Django的Rest Framework框架的视图组件
    Django的缓存机制
    Django中的跨域请求问题
    基于Django的Rest Framework框架的url控制器
    基于Django的Rest Framework框架的响应器
    基于Django的Rest Framework框架的分页组件
    基于Django的Rest Framework框架的解析器
    虚拟机下CentOS7开启SSH连接
    Vue中computed和watch的区别
  • 原文地址:https://www.cnblogs.com/hancq/p/5050141.html
Copyright © 2011-2022 走看看