30.shell编程-流程控制

if语句

  • 语法

    • if [ 条件判断式 ]

      then

      代码

      fi

    • if [ 条件判断式 ]

      then

      代码

      elif [ 条件判断式 ]

      then

      代码

      fi

  • #!/bin/bash
    #案例:编写一个shell程序,如果输入的参数大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
    if [ $1 -ge 60 ]
    then
            echo "及格了"
    elif [ $1 -lt 60 ]
    then
            echo "不及格"
    fi
    

case语句

  • 语法:

    • case $变量名 in

      "值1")

      如果变量值等于值1,则执行程序1

      ;;

      "值2")

      如果变量值等于值2,则执行程序2

      ;;

      ...省略其他分支...

      *)

      如果变量的值都不是以上的值,则执行此程序

      ;;

      esac

  • #!/bin/bash
    #案例1:当命令行参数是1时,输出“周一”,是2时,输出“周二”,其他情况输出“other”
    case $1 in
    "1")
            echo "周一"
    ;;
    "2")
            echo "周二"
    ;;
    *)
            echo "other"
    ;;
    esac
    

for循环

  • 语法1:

    • for 变量 in 值1 值2 值3

      do

      程序

      done

  • 案例:testFor1.sh

#!/bin/bash
#案例1:打印命令行输入的参数【这里可以看出$*和$@的区别】
#注意 $*是把输入的参数当作一个整体,所以只会输出一句话
for i in "$*"
do
        echo "num is $i"
done
#使用$@来获取输入的参数,会分别对待,而不是当作一个整体
echo "================================"

for j in "$@"
do
        echo "num is $j"
done
  • 语法2:

    • for (( 初始值; 循环控制条件; 变量变化 ))

      do

      程序

      done

  • 案例:testFor2.sh

#!/bin/bash
#案例1:从1加到100的值输出显示
SUM=0
for(( i=1; i<=100; i++))
do
        SUM=$[$SUM+$i]
done
echo "总和SUM=$SUM"

while循环

  • 语法:

    • while [ 条件判断式 ]

      do

      程序

      done

  • 案例:testWhile.sh

#!/bin/bash
#案例1:从命令行输入一个数n,统计从1+..+n的值是多少
SUM=0
i=1
while [ $i -le $1 ]
do
        SUM=$[$SUM+$i]
        i=$[$i+1]
done
echo "执行结果=$SUM"
posted @ 2021-05-22 00:00  haojinglei  阅读(75)  评论(0)    收藏  举报