欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell编程 while循环

程序员文章站 2024-03-23 20:45:10
...

回顾:
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 num];thenecho""echo"num ];then echo "恭喜你,猜对了!" echo "你猜了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 “已经猜三次了”

相关标签: 基础 shell