目录
1.循环语句
1.1 for循环语句
1.1.1 for语句结构
读取不同的变量值,用来逐个执行同一组命令
例1
例2
例3
例4
例5
例6
例7
1.1.2 循环嵌套
例1
例2:九九乘法表
1.2 while循环语句
例1
例2
例3
例4
例5
方式二
例6:猜商品价格
例7:监控系统资源中的内存和硬盘空间
例8:商店购物
#!/bin/bash
i=1
sum=0
while [ $i -le 5 ]
do
echo "进入第$i家商店"
read -p "是否进店购物(yes/no)" doing
while [ $doing = "yes" ]
do
echo "1:衣服 ¥200"
echo "2:鞋子 ¥150"
echo "3:帽子 ¥50"
echo "4:裤子 ¥165"
read -p "请选择需要购买的商品的序列号:" num
case $num in
1)
echo "衣服购买成功"
expr $[sum+=200] &>/dev/null
;;
2)
echo "鞋子购买成功"
expr $[sum+=150] &>/dev/null
;;
3)
echo "帽子购买成功"
expr $[sum+=50] &>/dev/null
;;
4)
echo "裤子购买成功"
expr $[sum+=165] &>/dev/null
;;
esac
read -p "是否进行购买(yes/no)" doing
done
let i++
if [ $doing = "no" ]
then continue
fi
done
echo "购物总价为:$sum"
1.3 until语句的结构
重复测试某个条件,只要条件不成立则反复执行
until 条件测试操作
do
命令序列
done
例:计算1-50的和
2 Shell函数
- 将命令序列按格式写在一起
- 可方便重复使用命令序列
2.1 Shell函数定义
方法一:
[function] 函数名(){
命令序列
[return x] #使用return或exit可以显示地结束函数
}
方法二
函数名(){
命令序列
}
例1
例2
例3
例4
例5
例6
例7:阶乘
2.2 递归函数
例1
例2
2.3 数组
2.3.1 数组的定义
数组是存放相同类型数据的集合,在内存中开辟了连续的空间,通常配合循环使用
2.3.2 数组的分类
普通数组:不需要声明直接定义,下标索引只能是整数
关联数组:需要用declare -A声明否则系统不识别,索引可以是字符串
例1
例2
3 补充:continue和break
break和continue都是用来控制循环结构的,主要是停止循环。
break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止。 这时我们可以使用break来完成。break用于完全结束一个循环,跳出循环体执行循环后面的语句。
continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环。 可以理解为continue是跳过当次循环中剩下的语句,执行下一次循环。
3.1 continue和break使用方法
break:
- 语法 break 将用于以下break语句退出循环
- break n 这里n指定的第n个封闭的循环退出
continue:
- 语法 continue 和break语句一样,一个整数参数可以给continue命令跳过嵌套循环的命令
- continue n 这里n指定第n个封闭循环 continue
本章总结
- for语句的结构
- while语句的结构
- until语句的结构
- Shell函数定义方法
- 数组使用方法