zoukankan      html  css  js  c++  java
  • 13、多分支+循环+循环嵌套

    多分支
    case 变量名/表达式 in
    value1|value2)
        commands1
        ;;
    value3)
        commands2
        ;;
         value4)
        command3
        ;;
    [*)
        defaults commands
        ;;]
        esac
     

    作用:计算变量名/表达式的值,然后与下面的 value 支匹配,与哪个匹配到(相等),就

           执行其下的commands ,如果所有的都没匹配到,
           有*就执行defaults commands 段
       
     
        例:写一个菜单程序,给几个选项
          1) 显示当前用户
          2) 显示内存信息
     3) 显示磁盘信息
          
    if 多分支
         if [ condition1 ]
    then
        commands1
    elif [ condition2 ]
    then
        commands2
    elif [ condition3 ]
    then
        commands3
    elif [ condition4 ]
    then
        commands4
    else
        commands
    fi
     
      练习:把象限的程序用if 多分支实现
     
     
    for 遍历循环
        格式:
    for 变量名 in value1 value2 value3 ... valueN
    do
    commands
    done
     
     
    如果遍历值很多可以
    for 变量名 in $(seq 起始值 步长 终值)
    do
    commands
    done
     
     
        作用:变量在 value1 到 valueN 之间遍历,每次取一个值,每取一个值执行一次循环体
          值取完循环也就结束了
      
      
    例:用for 求 1+2+3+...+50
     
    例:用for 遍历求 /etc/下有多少目录
       
    for i in /etc/*
    do
    done
     
     
    C式for 循环
    格式:for ((i=0;i<=100;i++))
         do
    commands
     
         done
     
    while 循环
      格式: while [ condition ]
          do
        commands
          done
     
    例:n=1
       while [ $n -le 5 ]
       do
    echo -n "*"
            n=$[$n+1]
       done
     
     
       打印 *****
     
     
            例:打印 1-10 内的偶数
     
    n=2
    while [ $n -le 10 ]
    do
             echo $n
             n=$[$n+2]
    done
     
     
    n=1
    while [ $n -le 10 ]
    do
             if [ $n%2 -eq 0 ]
             then
                     echo $n
             fi
             n=$[$n+1]
    done
     
           
     
     
     
    例:求 20 内能同时被2和3整除的数之和
           s=0
    n=1
    while [ $n -le 20 ]
    do
             if [[ $n%3 -eq 0 && $n%2 -eq 0 ]]
             then
                     s=$[$s+$n]
             fi
             let n+=1
    done
    echo "s=$s"
     
     
    until 循环
        格式:
     until [ condition ]
     do
     
    commands;
     done
    作用:condition 是否成立,不成立,执行循环体,成立里終止。
        例:打印 1-10 内的偶数
    n=1
    until [ $n -gt 10 ]
    例:通过循环创建三个用户,用户名从键盘输入,密码与用户名相同
       改密: echo $user | passwd $user --stdin
     
     
    死循环
    一般来讲死循环是要避免的,但在有些情况下,可能会刻意使用死循环,
    构建死循环:
    while true
    do
    [
    if [ condition ]
    then
    break    --在必要的时候给程序留个出口
    fi
    ]
     
    [sleep 3]        --在有些情况下,要給程序停止时间
    done
     
     
    例:写个程序监控vsftpd 是否正常运行,如果服务器停止了的话,启起来
    while true
    do
             if ! ....
             then
                     service vsftpd start
             fi
     
             sleep 3
    done
     
        例:写个程序,由用户输入用户名,直到输入的用户不存在,才退出
     
    循环嵌套
       while
         do
     
    while
    do
     
     
     
    done
     
     
     
         done
     
    例:写个程序,打印
     
    *
    **
    ***
    ****
    *****
     
    *****        
    ****
    ***
    **
    *
     
     
    作业:
        写个程序,打印
     
        *      
       **
      ***
     ****
    *****
     
    *****    
     ****
      ***
       **
        *
     
     
        *
       ***
      *****
     *******
    *********
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    .Net使用分布式缓存 C# 使用Redis
    微信申请退款API~~开发
    微信支付和支付宝支付分账接口文档
    Android xUtils3.0使用手册(一)- 基础功能使用
    支付宝支付开发——当面付条码支付和扫码支付
    vue开源项目汇总
    Azure和插件发布
    SqlServer数据库优化笔记
    企业微信通过PostMan获取accesstoken与管理员信息方法
    VisualStudio插件自动加载
  • 原文地址:https://www.cnblogs.com/steven9898/p/11331208.html
Copyright © 2011-2022 走看看