Shell 脚本学习笔记(三)——Shell 流程控制

你我皆是凡人,都在柴米油盐的琐碎中度日,也都在未知彷徨中向前。前路漫漫,起伏难料,我们要做的,就是时刻让心里充满阳光,认真生活。

本篇文章主要整理了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 多分支选择结构。
语法:

casein
模式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

版权声明:本文为weixin_42182599原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。