shell编程 while循环
回顾:
shell输出20斐波那契数列
0 1 1 2 3 5 8…
for 变量名 in item
item可以是:
字符串
数字
命令行参数
文件名
linux命令输出 //要``或者$()引起来
for (( 初始化; 条件; 计算机表达式))
for (( i=1;i<4; i++))
//类C语言
for i in `seq 3`(i<3)
do
...
done
1.斐波那契数列脚本
最后一个数字永远是前2个数字的和
0 1 1 2 3 5 8 12 …
a=(0 1)
//数组中的下标从0开始
a[2]=`expr ${a[0]} + ${a[1]}`
a[3]=`expr ${a[1]} + ${a[2]}`
...
//a[n]=`expr ${a[n-2]} + ${a[n-1]}`
a[$n]=`expr ${a[$[n-2]]} + ${a[1$[n-2]}`
替换为:
a=(0 1)
for n in `seq 2 20`
do
a[n]=`expr ${a[-2]} + ${a[-1]}`
done
echo ${a[@]}
whi le循环:
语法结构:
while 条件测试
do
执行命令
done
练习while循环基本用法
条件测试:
无心的死循环
i=1
while [ $i -le 5]
do
echo $i
done
有心的死循环:
while
do
命令
//执行语句虫添加中断语句结束脚本
done
猜数字:
#!/bin/bash
num=$[RANDOM%100+1]
#电脑生成的随机数,范围是1-100
while :
do
read -p “随机数1-100,你猜: " guess
if [ $guess -eq $num ];then
echo"恭喜你猜对了”
exit
elif [ $guess -gt $num ];then
echo"猜打了"
else
echo"猜小了"
fi
done
升级:
1.无限次数猜,统计第几次猜对
#!/bin/bash
num=$[RANDOM%100+1]
# 电脑生成随机数,范围是1–100
while :
do
read -p “随机数1-100,你猜:” guess
let i++
if [ $guess -eq i次"
exit
elif [ $guess -gt $num ];then
echo “猜大了!”
eles
echo“猜小了!”
fi
done
2.只能猜三次,猜不出就不让猜了
#!/bin/bash
num=$[RANDOM%100+1]
# 电脑生成随机数,范围是1–100
i=1
while [ $i -le 3 ]
do
read -p “随机数1-100,你猜:” guess
if [ $i -eq 3 ] ;then
echo “这是你最后一次猜了”
fi
let i++
if [ $guess -eq $num ];then
echo “恭喜你,猜对了!”
exit
elif [ $guess -gt $num ];then
echo “猜大了”
eles
echo “猜小了”
fi
done
echo “已经猜三次了”
上一篇: 环境搭建 :OpenCV MacOS Xcode实现
下一篇: Shell编程--while循环