shell-流程控制

一、if 条件
then 命令
elif 条件
then 命令 ...
else
命令
fi

[root@vm-paas scwyfy]# cat ifelifelse.sh #!/bin/bash read -p "请输入考试成绩 " s if ((${s} >= 0 && ${s} < 60)) then echo "不及格" elif [[ (${s} > 60 || ${s} == 60) && ${s} < 70 ]] then echo "及格" elif ((s >= 70 && s < 80)) then echo "中等" elif (( s >= 80 && s < 90)) then echo "良好" elif ((s >= 90 && s <= 100)) then echo "优秀" else echo "输入的成绩非法!" fi [root@vm-paas scwyfy]#
二、case 变量值 in 
匹配模式1)

命令1
命令2...
;;
匹配模式2)
...
;; // 表示结束
*) // 表示未匹配就走这个
命令1
命令2...
;;
esac // 结束

[root@vm-paas scwyfy]# cat case.sh #!/bin/bash read -p "请输入0-7的数字: " number case $number in 1) echo "星期一" ;; 2) echo "星期二" ;; 3) echo "星期三" ;; 4) echo "星期四" ;; 5) echo "星期五" ;; 6) echo "星期六" ;; 7|0) echo "星期日" ;; *) echo "无效数字" ;; esac
三、 while 条件
do
命令1
命令2...
continue //跳过此次循环
break // 终止循环
done

[root@vm-paas scwyfy]# cat while.sh #!/bin/bash read -p "请输入循环的次数:" number i=0 while ((i < number )) do let i++ if ((i == 3)) then echo "跳过打印循环${i}" continue fi if ((i == 5)) then echo "终止${i}后面的循环" break fi echo "循环${i}" done echo "循环结束"

 

四、forin 值列表
   do
      命令1
      命令2...
   done 

[root@vm-paas scwyfy]# cat for.sh
#!/bin/bash
for i in  1 3 5 7
do
  echo "hello${i}"
done

 

五、select 值 in 值列表
do
命令1
命令2
...
break // 必须要用,不然要一直循环下去
done
[root@vm-paas scwyfy]# cat select.sh #!/bin/bash echo "您的爱好是什么?" select hobby in "编程" "游戏" "运动" "篮球" do case $hobby in 编程) echo "努力吧" break ;; 游戏) echo "远离游戏" break ;; 运动|篮球) echo "运动挺好" break; ;; *) echo "输入有误" break ;; esac done echo "您的爱好是${hobby}"

 

posted @ 2024-05-10 21:58  scwyfy  阅读(3)  评论(0编辑  收藏  举报