Shell流程控制语句if

Posted 苦逼运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell流程控制语句if相关的知识,希望对你有一定的参考价值。

(1).if语句

语法格式:

if 判断条件 ; then 
  命令
fi

或
if 判断条件
then
  命令
fi

if语句流程图:

  实例:判断命令是否执行成功,成功则输出语句This is ok.

[root@youxi1 ~]# vim a.sh
#!/bin/bash
ls /mnt > /dev/null
if [ $? -eq 0 ] ; then
    echo "This is ok."
fi
[root@youxi1 ~]# sh a.sh
This is ok.

(2).双分支if语句

语法格式:

if 判断条件 ; then
  命令1
else
  命令2
fi

双分支if语句流程图:

 

 

  实例:判断命令是否执行成功,成功则输出This is ok.,否则输出This is not ok.

[root@youxi1 ~]# vim a.sh
#!/bin/bash
ls /mnt &> /dev/null
if [ $? -eq 0 ] ; then
    echo "This is ok."
else
    echo "This is not ok."
fi

ls /mnt/a.txt &> /dev/null
if [ $? -eq 0 ] ; then
    echo "This is ok."
else
    echo "This is not ok."
fi
[root@youxi1 ~]# sh a.sh
This is ok.
This is not ok.

(3).多分支if语句

语法格式:

if 判断条件1 ; then
  命令1
elif 判断条件2 ; then
  命令2
elif 判断条件3 ; then
  命令3
......
else
    命令n
fi

多分支if语句流程图:

 

  实例:判断键盘输入的数字,如果等于零则输出0,如果大于0则输出“这是一个正数”,如果小于0则输出“这是一个负数”。

[root@youxi1 ~]# vim a.sh
#!/bin/bash
read -p "请输入一个数字:" num
if [ $num -eq 0 ] ; then
    echo $num
elif [ $num -gt 0 ] ; then
    echo "这是一个正数"
else
    echo "这是一个负数"
fi
[root@youxi1 ~]# sh a.sh
请输入一个数字:12
这是一个正数
[root@youxi1 ~]# sh a.sh
请输入一个数字:0
0
[root@youxi1 ~]# sh a.sh
请输入一个数字:-12
这是一个负数

  

以上是关于Shell流程控制语句if的主要内容,如果未能解决你的问题,请参考以下文章

linux shell 流程控制

Shell流程控制语句if

shell编程中的流程控制语句

1-23-shell脚本之-if流程控制语句和for循环语句的使用

shell的流程控制介绍

shell 流程控制语句