shell脚本之 if,case,for的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本之 if,case,for的用法相关的知识,希望对你有一定的参考价值。

目录
一.条件选择:if语句
二.条件判断:case语句
三.for循环

一.条件选择:if语句

  1. 单分支
    if 判断条件;then
    条件为真的分支代码
    fi
    例子:判断一个数字是否等于10

    #!/bin/bash
       read -p ‘输入一个数字‘ num
       if [ $num -eq 10 ];then
        echo 该数字等于10
        fi
  2. 双分支
    if 判断条件; then 条件为真的分支代码
    else 条件为假的分支代码
    fi
    例子:判断一个数字是否大于10

            #!/bin/bash
             read -p ‘输入一个数字‘ num
              if [ $num -gt 10 ];then
                   echo 该数字大于10
              else
                    echo 该数字不大于10
                fi
  3. 多分枝
    if 判断条件1; then 条件为真的分支代码
    elif 判断条件2; then 条件为真的分支代码
    elif 判断条件3; then 条件为真的分支代码
    else 以上条件都为假的分支代码
    fi
    例子:判断一个数字的范围

            #!/bin/bash
            read -p ‘输入一个数字‘ num
            if [ $num -lt 10 ];then
                 echo 该数字小于10
            elif [ $num -ge 10 -a $num -lt 20  ];then
                  echo 该数字大于等于10小于20 
            elif [ $num -ge 20 -a $num -lt 50 ];then
                  cho 该数字大于等于20小于50
             else      
                 echo 该数字大于等于50
            fi      

    二.条件判断case语句

    • case $变量名 in
      条件1)
      分支1;;
      条件2)
      分支2;;
      默认条件 *)
      默认分支;;
      esac
      每个条件后面跟 )结尾 每个分支后面以 ;; 结束
      例子
      写一个能判断yes/no的脚本,(大小写均能识别,yes九种可能,no四种可能)、

                        #!/bin/bash
                          read -p "请输入yes|no: " q
                      case $q in
                          [Yy][Ee][Ss]|[Yy])
                         echo "yes";;
                         [Nn][Oo])
                        echo "no";;
                                    *)
                       echo "请输入正确的格式"
                  esac

      三.for循环

      执行机制:依次将列表中的元素赋值给“变量名”; 每次赋值后即执 行一次循环体; 直到列表中的元素耗尽,循环结束
      for 变量名 in 列表;do
      循环体
      done

    例1 利用for循环 计算1到10所有正整数之和

                   #!/bin/bash
                    let s=0
                     for n in echo {1..10};do
                      s=$[$s+$n]
                       echo $s
                         done

    例2 利用for循环打印99乘法表

                     #!/bin/bash
             for i in {1..9};do
                   for n in `seq 1 $i`;do
                    echo -n -e " $i"x"$n=$[i*n] "
                    done
                     echo
                done
    
    (每一个for要对应一个done)

以上是关于shell脚本之 if,case,for的用法的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本之forwhile循环语句和case分支语句

Shell脚本之进阶

Shell脚本的逻辑判断if文件目录属性判断if的特殊用法Shell中的case判断

shell脚本逻辑判断,文件目录属性判断,if,case用法

六十八shell脚本中的逻辑判断文件目录属性判断if特殊用法case判断

shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句