云服务器

Linux | shell脚本-条件判断if和循环语句for

2019-12-05 10:48:27 81
一 简介

上个章节中,我们学习了判断语句和运算语句。shell脚本中,这些判断语句一般都是和if、else、elif、for和while等语句一起使用。 在脚本编写中,条件判断语句常常用于多种情况的判断,符合哪一种情况就执行哪一种的命令。


二 shell条件判断语句:if

1流程控制:if单分支结构

语法:

if 条件判断;then

条件判断成功时执行的操作

    ...

fi

例子: 结合整数值比较-eq;检查主机是否在线

vim test1.sh

#!/bin/bash

if [ $# -ge 1 ]; then

   ping -c 3 $1 &> /dev/null && echo "$1 online" ||echo "$1 no online"

fi

运行结果:


2流程控制:if双分支结构

语法:

if 条件判断;then

条件判断成功时执行的操作

    ...

else

条件判断不成功时执行的操作

    ...

fi

例子:结合字符比较-z;检查某个服务是否运行,如果没运行则启动。

vim test2.sh

#!/bin/bash

read -p "请输入服务名称" service_name

if [ ! -z $service_name ];then

   service $service_name status &> /dev/null

   if [ $? -eq 0 ];then

     echo "$service_name is running"

   else

     service $service_name start

   fi

else

   echo "您输入服务名称例如:httpd"

fi

运行结果:



3流程控制:if多分支结构

语法:

if 条件判断1then

    条件判断1成立时执行的操作

    ....

elif 条件判断2then

    条件判断2成立时执行的操作

     ....

else

    所有条件判断都不成立时执行的操作

fi

例子:做一个奖品分类0-100分结合数值比较

0-59     安慰奖 60-70     三等奖  71-80    二等奖 81-90  一等奖91-100 特等奖

如果:不输入或大于100请重新输入分数

#!/bin/bash

read -p "请输入你的分数" a

if [ -z $a ];then

  echo "分数的有效范围是 0100分!!!"

  exit

fi

  if [ $a -ge 0 ] && [ $a -le 59 ];then

    echo "安慰奖"

  elif [ $a -ge 60 ] && [ $a -le 70 ];then

    echo "三等奖 "

  elif [ $a -ge 71 ] && [ $a -le 80 ];then

    echo "二等奖 "

  elif [ $a -ge 81 ] && [ $a -le 90 ];then

    echo "一等奖 "

  elif [ $a -ge 91 ] && [ $a -le 100 ];then

    echo "特等奖 "

else

   echo "分数的有效范围是 0100分!!!"

fi 

运行结果:


 shell循环结构语句

shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:forwhileuntilwhile循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:breakcontinue控制流程转向。

1循环结构:for

语法:

for 变量名  in 变量值列表

do

循环体

done

例子:输出1-254的中的偶数,并且计算个数

#!/bin/bash

num=0

for i in {1..254}

do

 if [ `expr $i % 2` -eq 0 ];then

  echo $i

     let num++

 fi

done

echo "1-254 之间的偶数 "$num" "

运算结果:




睿江云官网链接:https://www.eflycloud.com/home?from=RJ0032

上一篇: 无

微信关注

获取更多技术咨询