综合示例
例题1:数字累加脚本 (1 到 100 的累加)
-
需求:编写脚本实现计算从1加到100的值
-
思路:
- 累加需要用到循环,已知循环次数时使用for循环
- 也可以使用while循环达到累加条件时结束循环
-
脚本内容:
sum=0 for i in {1..100} do sum=$(($sum + $i)) # 每次循环将i加到sum上 #let sum=$i+$sum # 二选一 done echo "1到100的累加值为:$sum" # 或者 sum=0 for ((i=0;i<=100;i++)) do sum=$[i+sum] done echo $sum
执行结果:
1到100的累加值为:5050
例题2:计算 1 到 100 的偶数和、奇数和
-
脚本内容:
#!/bin/bash num1=0 # 偶数和 num2=0 # 奇数和 for i in {1..100} do if (( i % 2 == 0 )); then num1=$(($num1 + $i)) else num2=$(($num2 + $i)) fi done echo "偶数和:$num1" echo "奇数和:$num2"
例题3:循环打印 9x9 乘法表
-
思路:
- for循环打印一行9个*号
- 再添加一个for循环打印一个9行9列的*号正方形
- 将
*
号正方形斜砍一般形成99乘法表的基本格式 - 将
*
号99乘法表格式用乘法算式替换
-
步骤:
- for循环打印一行9个*号
#!/bin/bash for i in {1..9} #for循环9次从i=1开始 do echo -n "*" #每循环一次打印一个*,echo -n参数表示不换行 done #此for循环语句结束 执行结果: *********
- 再添加一个for循环打印一个9行9列的*号正方形
#!/bin/bash for i in {1..9} #添加打印列循环,循环9次从i=1开始 do #j循环时做do中的内容 for j in {1..9} #第一步for循环内容不变 do echo -n "*" done echo #列循环每循环一次进行换行 done #列循环for语句结束标志 执行结果: ********* ********* ********* ********* ********* ********* ********* ********* *********
- 将
*
号正方形斜砍一般形成99乘法表的基本格式
#!/bin/bash for i in {1..9} #行循环内容不变 do for ((j=1; j<=i; j++)) # 修改行循环j的取值范围为展开变量j, # 即当j=1时i取值只有1,所以循环一次。 # 当j=2时,i取值为1和2,所以i=1和i=2各循环一次, # 循环2次。以此类推到j=9 do echo -n "*" done echo done 执行结果: * ** *** **** ***** ****** ******* ******** *********
- 将
*
号99乘法表格式用乘法算式替换
#!/bin/bash for i in {1..9} #列循环内容不变 do for ((j=1; j<=i; j++)) do echo -ne "$i*$j=$[ $i*$j ]\t" # 行输出内容修改为9*9算式和结果。 # $[ ]表示计算里面的正整数结果, # echo -e参数表示调用转义符, # \t表示制表符即循环时输出一个tab键 done echo done 输出结果: 1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81