• shell 流程控制语句


    case语句

    case $变量名 in
     "值1")
       如果变量的值等于值1,则执行程序1 ;;
      "值2")
       如果变量的值等于值2,则执行程序2 ;;
       ...省略其他分支...
       *) 
       如果变量的值都不是以上的值,则执行此程序 ;;
    esac  //case反过来写
    
    "case语句的使用实例"
    #!/bin/bash
    read "please input yes /no": cho
    case "$cho" in
     "yes")
         echo "输入正确!";;
      "no")
         echo "输入错误!";;
        *)
         echo "输入异常!";;
    esac
    ------------------------------------使用case的语句进行流程控制------------
    [root@ssgao shell]# cat case_a.sh 
    #!/bin/bash
    read op
    case $op in 
      a)
        echo "你输出的信息为 a ";;
      b) 
        echo "你输入的信息为 b ";;
      *)
        echo "输入错误!"
    esac
    [root@ssgao shell]# sh case_a.sh 
    a
    你输出的信息为 a 
    

    for语句

    for 变量 in 值1 值2 值3 ...
     do
      程序
     done
    
    -----------使用实例--------- 
     #! /bin/bash
     for i in 1 2 3 4 5
      do
        echo $i
      done
    -----------使用实例-------------
    解压缩某个目录下的压缩文件
    #!/bin/bash
    cd /root/test/
    ls *.tar.gz > ls.log
    ls *.tgz >> ls.log
    for i in $(cat ls.log)
      do 
        tar -zxf &> /dev/null
      done
    rm -rf ls.log
    

    select循环

    select 变量 in 列表
      do 
        cmd ...
      done
    
    [root@ssgao shell]# vim g.sh
    #!/bin/bash
    select a in "a" "b" "c" "d"
    do
     echo $a 
     break
    done
    [root@ssgao shell]# sh g.sh 
    1) a
    2) b
    3) c
    4) d
    #? 3 //选择第三行信息
    c
    

    until循环

    until循环,和while循环相反,until循环时只要条件判断式不成了则进行循环
    并执行循环程序。
    一旦循环条件成立,则终止循环
    ​
    until [ 条件判断式 ]
     do
      程序
     done
    
    -----------使用实例------------
    #!/bin/bash
    #从1加到100
    i=1
    s=0
    until [$i -ge 100] #如果变量i的值大于等于100,则停止执行循环
     do
      s=$(($s+$i))
      i=$(($i+1))
     done
    echo "the sum is : $s"
    

    while循环

    while循环是不定循环,也称作条件循环。主要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。
    这和for的固定循环不太一样
    while [ 条件判断式 ]
     do
      程序
     done
    
      continue ; //继续执行
      break; //跳出循环 
    
    ------------------使用实例--------------
    #!/bin/bash
    i=1
    sum=0
    while [ $i -le 100 ]
     do
      sum=`expr $sum + $i`
      i=`expr $i + 1`
     done
    echo "the sum is : $sum"
         
    [root@ssgao shell]# sh while.sh 
    the sum is : 5050     
         
        
        
    [root@ssgao shell]# cat while.sh 
    #!/bin/bash
    i=0
    while [ $i -le 100 ]
     do
      i=`expr $i + 1 `
      if [ $i -eq 10 ]
        then
          echo "contine" 
          continue;   //-----体会continue的使用
      elif [ $i -eq 11 ]
        then
         echo "break"
         echo "${i}"
        break; //----体会break的使用
      fi
     done    
    [root@ssgao shell]# sh while.sh  //运行查看执行的结果
    contine
    break
    11 
    
  • 相关阅读:
    随机六位数验证码生成
    泛型反反射方法显示
    前台分页控件用法
    asp.net api后台
    项目开发基础概念
    认证Authentication、权限Permissions、限流Throttling、过滤Filtering、排序、分页Pagination、异常处理Exceptions、自动生成接口文档、Xadmin
    视图基类、视图扩展类、GenericAPIView的视图子类、视图集基类ViewSet、action属性、路由Routers
    序列化组件的使用、反序列化、全局钩子和局部钩子的使用、raise_exception参数、modelserializer进行数据保存时的问题
    day61 Linux:权限管理、rpm软件包管理、yum工具
    day60 Linux压缩与打包、用户管理、用户提权sudo、grep、sed、awk、sort、uniq
  • 原文地址:https://www.cnblogs.com/ssgao/p/8869696.html
Copyright © 2020-2023  润新知