神奇的循环控制语句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。

浙公网安备 33010602011771号