你我皆是凡人,都在柴米油盐的琐碎中度日,也都在未知彷徨中向前。前路漫漫,起伏难料,我们要做的,就是时刻让心里充满阳光,认真生活。
本篇文章主要整理了Shell中常用的流程控制。
1. if else
记住记住,如果else分支没有语句执行,就不要写这个else了
注意注意格式
第一种格式
if condition
then
command1
...
fi
第二种格式
if condition
then
command1
...
else
command2
...
fi
第三种格式
if condition1
then
command1
...
elif condition2
then
command2
...
fi
案例
#!/bin/bash
val1="hello"
val2=6
val3=8
if [ $val1 = "hello" ]
then
echo "相等"
fi
## 结果:相等
if [ $val2 == "2" ]
then
echo "相等"
else
echo "不等"
fi
## 结果:不等
if [ $val2 == "2" ]
then
echo "等于"
elif [ $val2 == "6" ]
then
echo "val3的值为8"
fi
## 结果 : val3的值为8
补充:
单等号和双等号的区别
单等号和双等号都可以比较字符串和数值类型
2. case … esac
case … esac 多分支选择结构。
语法:
case 值 in
模式1)command1
...
;;
模式3)command2
...
;;
*)command3
...
;;
esac
分析:
1. 值 后面必须为 in
2. case分支用右圆括号开始,两个分号表示break,即执行结束,跳出整个 case ... esac 语句。
3. 如果没有匹配的,则使用 ✳️ 号来捕获。
#!/bin/bash
val="2"
case $val in
1)
echo "hello1"
;;
2)
echo "hello2"
;;
*)
echo "other hello"
;;
esac
## 结果:hello2
3. for 循环
案例一:
#!/bin/bash
for var in 1 2 3 4
do
echo "hello"
done
案例二:
sum=0
for ((i=1;i<=100;i++))
do
sum=$[$sum+$i]
done
echo $sum
案例三:
无限循环
for (( ; ; ))
4. while
while 循环用于不断执行一系列命令,
格式:
while condition
do
command1
done
案例展示
案例一:
#!/bin/bash
int=1
while(( $int<=3 ))
do
echo $int
let "int++"
done
案例二:
s=0
i=1
while [ $i -le 100 ]
do
s=$[$s + $i]
i=$[$i +1]
done
echo $s
案例三:
无限循环
while true
do
command1
done
或者
while:
do
command1
done