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

shell编程 whill循环 case分支语句

程序员文章站 2022-03-05 13:11:27
...

shell编程 whill循环 case分支语句

内容回顾:
1.斐波那契数列脚本
2.闰年判断脚本

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

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

1.斐波那契数列脚本
最后一个数字永远是前2个数字的和
0 1 1 2 3 5 8 13 …
a=(0 1)
//数组中的下标从零开始
a[2]=`expr a[0]+{a[0]}+

a[]

while循环:
语法结构:
while 条件测试
do
命令
done

 条件测试:
      [ $i -le 5 ]
      do
        echo $i
      done

  有心的死循环:
  while :
  do
      命令
       //执行语句中添加中断语句结束脚本
   done

   猜数字:
   #!/bin/bash
   mum=$[RANDOM%100+1]
   # 电脑生成随机数,范围是1-100
   while :
   do
       read  -p "随机数1-100,你猜:"guess
       if  [ $guess -eq $num ];then
            echo "恭喜你,猜对了!"
         elif [ $guess -eq $num ];then
              echo "猜大了!"
         elif [ $guess -eq $num ];then
           echo "猜小了!"
         fi
   done

 升级:
 1.无限次数猜,统计第几次猜对的!
 2.只能猜三次,猜不对不让猜了。

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 “请输入正确的数字!”

case 分支实例
网站(httpd)管理脚本:
1.输入start或者数字1,开启网站服务
2.输入stop或者数字2,关闭网站服务
3.输入restart或者数字3,重启网站服务

#!/bin/bash
rpm -q httpd
if [ $? -eq 0 ] ; then
read -p “please input your seleect :” num
case $num in
1 |start)
systemctl start httpd;;
2 |stop)
systemctl stop httpd;;
3 |restart)
systemctl restart httpd;;
else
yum -y install httpd
fi