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]则报错
记得快乐
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY