(五)Shell控制流程

五、流程控制

1. if

if [ 条件 ]
then
	程序
elif [ 条件 ]
then
	程序
fi
  • if后要有空格
  • 中括号和条件判断式之间必须有空格

案例实操

输入一个数字,如果是1,则输出“I love cat”,如果是2则输出“I love dog”,如果是其他,则输出“I love animal”

2.case

取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。

如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

case 值 in
	模式1)
		程序
	;;
	模式2)
		程序
	;;
	*)
		程序
	;;
esac
  • 取值后面必须为单词 in, 每一模式必须以右括号结束。
  • 双分号;;相当于java中的break
  • 最后的*),相当于default

案例实操

case $1 in
1)
	echo "I love cat"
;;
2)
	echo "I love puppy"
;;
*)
	echo "I love everything"
;;
esac

3. for

语法一for..in

for var in item1 item2...itemN
do
	程序
done

或是:
for var in item1 item2...itemN; do 程序1; 程序 done;

案例实操

#!/bin/bash

for val in 1 2 3 4 5
do
	echo "the value is: $val"
done

语法二: for(())

for((初始值;循环控制条件;变量变化))
do
	程序
done

案例实操

for(( i=1;i<=100;i++ ))
do
        s=$[$s+$i]
done

echo "sum = $s"

4. while

while [ 条件表达式 ]
do
	程序
done

while后要有空格

[]和表达式之间要有空格

案例实操

#!/bin/bash

s=0
i=0
while [ $i -le 100 ]
do
	s=$[$s + $i]
	i=$[$i + 1]
done

echo $s
posted @ 2022-08-24 15:47  言思宁  阅读(13)  评论(0编辑  收藏  举报