Shell流程控制
2022/4/26 7:12:45
本文主要是介绍Shell流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Shell流程控制
if 判断
基本语法
# 语法一,分号表示一条命令的结束 if [ 条件判断式 ];then 程序;fi # 语法二 if [ 条件判断式 ] then 程序 fi
注意:if 后面必须要有空格
实战
[root@zookeeper1 shell]# age=7 # 如果7<=age<=17则输出ok [root@zookeeper1 shell]# if [ $age -ge 7 ] && [ $age -le 17 ];then echo ok;fi ok # 可以将条件写在一对[]里面,用-a(and)连接也是一样的作用,如果是||则用-o(or)连接 [root@zookeeper1 shell]# if [ $age -ge 7 -a $age -le 17 ];then echo ok;fi ok
多分支语法
if [ 条件判断式 ] then 程序 elif [ 条件判断式 ] then 程序 else 程序 fi
实战
[root@zookeeper1 shell]# cat if.sh #!/bin/bash if [ $1 -lt 18 ] then echo "未成年" elif [ $1 -lt 30 ] then echo "成年" else echo "老年人" fi [root@zookeeper1 shell]# ./if.sh 7 未成年 [root@zookeeper1 shell]# ./if.sh 18 成年 [root@zookeeper1 shell]# ./if.sh 50 老年人
case 语句
基本语法
case $变量名 in "值1") 如果变量的值等于值 1,则执行程序 1 ;; "值2") 如果变量的值等于值 2,则执行程序 2 ;; …省略其他分支… *) 如果变量的值都不是以上的值,则执行此程序 ;; esac
注意事项
- case 行尾必须为单词 in,
- 每一个模式匹配必须以右括号 ) 结束
- 双分号 ;; 表示命令序列结束,相当于 java 中的 break
- 最后的 *) 表示默认模式,相当于 java 中的 default
实战
[root@zookeeper1 shell]# cat case.sh #!/bin/bash case $1 in 1) echo "one" ;; 2) echo "two" ;; 3) echo "three" ;; *) echo "number" ;; esac [root@zookeeper1 shell]# ./case.sh 1 one [root@zookeeper1 shell]# ./case.sh 2 two [root@zookeeper1 shell]# ./case.sh 3 three [root@zookeeper1 shell]# ./case.sh 5 number
for 循环
基本语法1
for (( 初始值;循环控制条件;变量变化 )) do 程序 done
实操
[root@zookeeper1 shell]# cat for.sh #!/bin/bash for (( i=1;i<=$1;i++ )) do sum=$[ $sum+$i ] done echo $sum [root@zookeeper1 shell]# ./for.sh 100 5050
基本语法2
for 变量 in 值1 值2 值3… do 程序 done
实操
[root@zookeeper1 shell]# for number in 1 2 3;do echo $number;done 1 2 3
基本语法3
for 变量 in {最小值..最大值} do 程序 done
实战
[root@zookeeper1 shell]# for i in {1..100};do sum=$[ $sum+$i ];done;echo $sum 5050
注意:in后面要有空格,{}里面不要有空格
while 循环
while [ 条件判断式 ] do 程序 done
实战
[root@zookeeper1 shell]# cat while.sh #!/bin/bash i=1 while [ $i -le $1 ] do sum=$[$sum+$i] i=$[$i+1] done echo "sum=$sum" [root@zookeeper1 shell]# ./while.sh 100 sum=5050
注意:[]之间要有空格,如果写成[$i -le $1]则报错
这篇关于Shell流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了