目录
循环含义
将某代码段重复运行多次,通常有进入循环的条件和退出循环的条件
for
执行机制:依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束,如果省略 [in WORDS ... ] ,此时使用位置参数变量 in "$@"
基本格式
for 已知循环次数
for tlj(变量) 循环次数(取值列表)
do
需要循环的事件
done
例子
打印正方形
#!/bin/bash
for j in {1..9}
do
for i in {1..9}
do
echo -e " * \c"
#\c换行
done
echo
#换行
done
倒序99乘法表
#!/bin/bash
for j in {1..9}
do
for i in `seq $[10-$j]`
do
echo -ne " ${i}x`echo $[10-j]`=$[(10 -j)*i]\t"
done
echo
done
while
用于不知道循环次数,需要主动结束循环或达到条件结束循环。
基本格式
while [ 判断条件] 使用while循环满足条件执行do,不满足不执行
do
执行动作 while循环执行动作
done while循环结束标志
求和
#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
let sum+=$i
let i+=2
done
echo $sum
双重循环及跳出循环
break跳出单个循环后面加数字2则代表跳出两层循环
continue终止某次循环中的命令,但是不会完全终止命令
本层循环
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then continue
fi
echo i=$i
done
#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then break
fi
echo i=$i
done
菜单
#!/bin/bash
sum=0
PS3="请输入(1-6):"
MENU="
宫保鸡丁
酸菜鱼
鱼香肉丝
佛跳墙
水煮肉片
点菜结束
"
select menu in $MENU
do
case $REPLY in
1)
echo $menu 价格是20
let sum+=20
;;
2)
echo $menu 价格是60
let sum+=60
;;
3)
echo $menu 价格是25
let sum+=25
;;
4)
echo $menu 价格是150
let sum+=150
;;
5)
echo $menu 价格是60
let sum+=60
;;
6)
echo "点菜结束"
break
;;
*)
echo "点菜错误,请重新选择"
;;
esac
done
echo "总价是$sum"