shell编程-while循环-基于case分支编写脚本

shell编程-while循环-基于case分支编写脚本

for 变量名 in item
item都可以是:
字符串.
数字
命令行参数
文件名
linux命令的输出//要``或者$()引起来

for ((初始化; 条件;计算表达式))
for (( i=1;i<4;i++))
//类似c语言

for i in seq 3
do

done
可替换为:
for (( i=1;i<4;i++))

1.斐波那契数列脚本
最后一个数字永远是前2个数字的和
0 1 1 2 3 5 8 12 …

a (0 1)
//数组中的下标丛零开始
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[$[n-2]] }
替换为:
a[$n]=expr ${a[-2]} + ${a[-1] }

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.无限次数猜,统计第几次猜对的!
2.只能猜三次,猜不对不让猜了!
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"猜大了"
else
echo"猜小了"
fi
done
echo “已经猜三次了”

case分支及中断循环
case分支语句:
匹配执行的方式,针对的变量预先存在的值,判断该变量
实际的取值是否和预设的值相匹配,如果匹配,就执行相应的操作
如果不匹配,就先执行预先设置好的默认操作

语法结构:
case  变量值 in 
模式1)
     命令序列1 ;;
模式2)
     命令序列2 ;;
*)
     默认命令序列
esac

#!/bin/bash
read -p "请输入你要选择的数字1-4: " num
case num in
1)
echo “is 1” ;;
2)
echo “is 2” ;;
3)
echo “is 3” ;;
*)
echo “请输入正确的数字!”

#!/bin/bash
read -p "请输入你要选择的数字1-4: " num
case num in
1)
echo “is 1 or 2” ;;

2)

echo “is 1 or 2” ;;

  1. echo “is 3” ;;
    *)
    echo “请输入正确的数字!”
    case 分支实例:
    网站(httpd)管理脚本:
    0.首先判断httpd服务是否安装
    1.输入start或者数字1,开启网站服务
    2.输入stop或者数字2,关闭网站服务
    3.输入restart或者数字3,开启网站服务
    #!/bin/bash
    rpm -q httpd
    if [ $-eq 0 ] ;then
    read -p "please 1nput your select :"num
    case $num in
    1 |start)
    systemctl start httpd ;;
    2 |start)
    systemctl start httpd ;;
    3 |start)
    systemctl start httpd ;;
    *)
    echo “请输入正确的值”
    esac
    else
    yum -y install httpd
    fi
发布了138 篇原创文章 · 获赞 149 · 访问量 8450

猜你喜欢

转载自blog.csdn.net/weixin_44799645/article/details/104811124