day03:if语句

条件判断——if语句

  就像语文造句子,假如.......就....或者......就.....否则.......就....

  接下来就以比较两个整数数值的大小来学习if语句

①单分支:一个条件一个结果

  if 条件判断表达式

  then     ##条件判断表达式返回为真,执行语句1

    语句1

  fi

例如:

vim /server/scripts/day03.sh 
#!/bin/bash
read -p "请输入第一个整数数字:" num1  ##接受用户输入的第一个变量,赋值给变量num1
read -p "请输入第二个整数数字:" num2  ##接受用户输入的第二个变量,赋值给变量num2
    
if [ $num1 -gt $num2 ]   ##判断变量num1大于变量num2,是否为真
then      ##判断语句为真,执行then语句
    echo "${num1}大于${num2}"
fi

执行:

扫描二维码关注公众号,回复: 8163693 查看本文章
[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:12
请输入第二个整数数字:11
12大于11

看似成功了,看下面的例子

  假如输入两个相同的整数、或者输入的第一个小、第二个大。那么条件判断表达式都是不成立的,自然没有任何的输出

  

②双分支:一个条件两个结果

  if 条件判断表达式

  then     ##条件判断表达式返回为真,执行语句1

    语句1

  else     ##条件判断表达式返回为假,执行语句2

    语句2

  fi

例如:

vim /server/scripts/day03.sh
#!/bin/bash
read -p "请输入第一个整数数字:" num1  ##接受用户输入的第一个变量,赋值给变量num1
read -p "请输入第二个整数数字:" num2  ##接受用户输入的第二个变量,赋值给变量num2
    
if [ $num1 -gt $num2 ]   ##判断变量num1大于变量num2,是否为真
then      ##判断语句为真,执行then语句
    echo "${num1}大于${num2}"
else      ##判断语句为假,执行else语句
    echo "${num1}小于${num2}"
fi

执行:

[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:12
请输入第二个整数数字:11
12大于11
[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:11
请输入第二个整数数字:12
11小于12

看似好了一点,但没有bug吗?

再次查看if语句,发现了判断语句的处理流程。

  首先判断12大于12,显然判断不成立,返回为假

  执行else语句,输出语句,所以不严谨。因此升级一下脚本

  else中可以嵌套if语句,也就是说,可以多次判断,类似 条件1 && 条件2 && 条件3

③else语句桥套if语句,进行多次判断

例如:

vim /server/scripts/day03.sh
#!/bin/bash
read -p "请输入第一个整数数字:" num1  ##接受用户输入的第一个变量,赋值给变量num1
read -p "请输入第二个整数数字:" num2  ##接受用户输入的第二个变量,赋值给变量num2

if [ $num1 -gt $num2 ]   ##判断变量num1大于变量num2,是否为真
then      ##判断语句为真,执行then语句
    echo "${num1}大于${num2}"
else      ##判断语句为假,执行else语句,也就是说,已经判断出变量1不大于变量2(小于或者等于)
    if [ ${num1} -eq ${num2} ]  ##继续判断,变量num1等于变量num2,是否为真
    then
        echo "${num1}等于${num2}"
    else
        echo "${num1}小于${num2}"
    fi
fi

执行:

[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:11
请输入第二个整数数字:12
11小于12
[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:12
请输入第二个整数数字:11
12大于11
[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:11
请输入第二个整数数字:11
11等于11

④上面的嵌套语句看起来很繁华,所以if同时还支持多分支语句

多分支语句:多个判断条件多个输出结果(满足哪个个判断条件、就执行哪个语句)

if 条件判断表达式1

then

  语句1

elif  条件判断表达式2

then

  语句2

elif 判断N....

then

  语句N...

else

  语句

fi

例如:

vim /server/scripts/day03.sh
#!/bin/bash
read -p "请输入第一个整数数字:" num1  ##接受用户输入的第一个变量,赋值给变量num1
read -p "请输入第二个整数数字:" num2  ##接受用户输入的第二个变量,赋值给变量num2
    
if [ $num1 -gt $num2 ]   ##判断变量num1大于变量num2,是否为真
then     
    echo "${num1}大于${num2}"
elif [ ${num1} -eq ${num2} ]  ##判断变量num1等于变量num2,是否为真
then
    echo "${num1}等于${num2}" 
else  ##上面所有的判断都不成立,执行else语句,一般放在最后
    echo "${num1}小于${num2}" 
fi

执行:

[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:11
请输入第二个整数数字:12
11小于12
[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:12
请输入第二个整数数字:11
12大于11
[root@rhel4 ~]# bash /server/scripts/day03.sh
请输入第一个整数数字:12
请输入第二个整数数字:12
12等于12

猜你喜欢

转载自www.cnblogs.com/SunMengZhao/p/12028645.html