神奇的循环控制语句if 、for、case、while

一、if 循环控制(单分支与多分支)

单个判断(单分支循环)

if []
then
fi


if []
then
else fi

多个判断(多分支循环):

if []
then
elif []
then
elif []
then 
fi

二、for循环控制

(1)for 变量名 in 值1 值2 值3
		do
		执行动作
		done
(2)for 变量名 in `命令`
		do
		执行动作	
		done	

for i in `seq 1 10`   # 从1 到10
  do
  echo "变量i的值为:${i}"
  done

 

还有一种写法:

for i in $(cat 123.txt)    # $()  相当于  ` `  写法不同
  do
  echo "变量i的值为:${i}"
  done

ping -c 2 www.baidu.com   只Ping 2次

echo  -e "\n"     换行的话一定要加上-e

(3)for (( 条件 ))
  do
  执行动作
  done

for (( i=0;i<10;i++ ))
do
echo "i的值是${i}"
done

 三、case循环控制

应用场景:case循环常使用于多重分支,与if不同的是,if可以判断多个条件,case一次只能判断一种条件

case 变量 in 

	值1 )
	执行动作1
	;;      # 2个分号表示语句结束!

	值2 )
	执行动作2
	;;

	值3 )
	执行动作3
	;; 
     *) # * 表示匹配不到
    执行动作4
    ;;
esac


echo "你想查询哪个城市的天气"
read city
case $city in
'深圳')
echo "温度18~24度 天气晴"
;;
'北京')
echo "温度14~28度 天气雨"
;;
'杭州')
echo "温度14~18度 天气阴"
;;
*)
echo "sorry,没找到所在城市"
;;
esac

四、while 循环

应用场景:while循环是条件循环也是不定循环,只要条件判断式成立,循环就会一直进行着。直到判断式不成立 或者 选择跳出循环 才会结束
				while [ 条件判断式 ]
				do
					执行动作
				done

# 计算你从0加到输入数字的和是多少?
echo "请输入数字"
read number
i=0
sum=0
while [ $i -le $number ]
do
sum=$(($sum+$i))
i=$(($i+1))

done
echo "数字之和是:${sum}"

注意:
1、赋值时 = 两边不要有空格
2、[] 里面两边要有空格

3、$(()):对内部内容进行整数运算$((var1*var2))

4、$():对命令的替换,同``(反引号)。

5、${}:对变量的替换,同$var。

 

posted @ 2021-06-23 21:36  JakeTan  阅读(575)  评论(0)    收藏  举报