Skip to content

流程控制(重点)

if 判断 单分支

1)基本语法 单分支

shell
if [ 条件判断式 ];then
程序
fi

或者

shell
if [ 条件判断式 ]
then
程序
fi

注意事项:

  • [ 条件判断式 ],中括号和条件判断式之间必须有空格
  • if 后要有空格

单分支案例实操

输入一个参数,如果该参数是xixi 则输出 welcome, xixi 如果是其他则什么也不输出。

shell
#!/bin/bash


if [ "$1" = xixi ]
then
       echo "welcome, xixi"
fi

image.png

if 判断 多分支

1)基本语法 多分支

shell
if [ 条件判断式 ]
then
程序
elif [ 条件判断式 ]
then
程序
else
程序
fi

多分支案例实操

输入一个年龄,如果年龄小于18岁输出未成年人,小于35岁输出青年人,小于60岁输出中年人,其他输出老年人。

shell
# 输入第二个参数,表示年龄,判断属于哪个年龄段
if [ $2 -lt 18 ]
then

       echo "未成年人"

elif [ $2 -lt 35 ]
then
       echo "青年人"
elif [ $2 -lt 60 ]
then
       echo "中年人"
else
       echo "老年人"

fi

image.png

case 语句

1)基本语法 case 语句

shell
case $变量名 in
"值 1"
如果变量的值等于值 1,则执行程序 1
;;
"值 2"
如果变量的值等于值 2,则执行程序 2
;;
…省略其他分支…
*
如果变量的值都不是以上的值,则执行此程序
;;
esac

注意事项:

  • case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
  • 双分号“;;”表示命令序列结束,相当于 java 中的 break。
  • 最后的“*)”表示默认模式,相当于 java 中的 default。

case语句案例实操

输入一个数字,如果是数字1 则输出one 数字2 则输出two 数字3 则输出three 其他则输出 number else

shell
#!/bin/bash

case  $1 in
1)

            echo "one"
;;
2)
            echo "two"
;;
3)
            echo "three"
;;
*)
            echo "number else"
;;
esac

image.png