shell编程之if语句

Posted 世界美好與你環環相扣

tags:

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

shell编程之if语句


if语句
1)应用场合:根据特定的条件测试结果,分别执行不通的操作(如果……那么……)
(2)分类:单分支的if语句,多分支的if语句,多分支的if语句
单分支语句:
分支指的是不同测试结果所对应的执行语句(一条或多条)。单分支语句只有在条件成立时才会执行相应的代码,否则不执行任何操作

在这里插入图片描述
单分支的语法格式

if 条件测试操作
then
    命令序列
fi

单分支应用实例:

#!/bin/bash 
#这是一个创建目录的脚本文件
read -p "请输入目录: " dir
if [ ! -d $dir ];then
    mkdir -p $dir
  echo "目录已创建"
   ls -ld $dir
fi

双分支语句
对于双分支的选择结构,要求针对“条件成立”和“条件不成立”两种情况分别执行不同的操作。
格式如下:

if 条件测试操作
then 
  命令序列1
else
  命令序列2
fi

在这里插入图片描述

双支应用实例:

#!/bin/bash
#这是个判断当前用户是不是root和qingdong用户的脚本
if [ "$USER" = "root" ];then
echo " root用户"
elif [ "$USER" != "qingdong" ];then
echo "错误:非qingdong用户"
else
echo "当前登录的是$USER用户"
fi
#!/bin/bash
#这是个判断主机是否存活的脚本
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
 echo "HOST $1 is up"
else
 echo "HOST $1 is down"
fi

在这里插入图片描述
多分支的语句:
能进行多次判断,根据测试结果的成立和不成立分别执行操作,能够嵌套使用
多分支语句格式:

if 条件测试操作1
 then 
 命令序列1
elif 条件测试操作2
 then 
 命令序列2
else 
 命令序列3
fi 

在这里插入图片描述

多支应用实例:

#!/bin/bash
read -p "请输入用户名:" user
if grep $user /etc/passwd ; then
 if [ -d /home/$user ]; then
 echo " 该用户状态正常"
   else
    read -p "该用户没有家目录,是否删除用户,请输入[yes/no]: " ask
       if [ $ask == yes ];then
               echo "正在删除用户…"
              userdel $user
              echo "该用户已删除"
            elif [ $ask == no ]; then
              exit
            fi
      fi
fi                        

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

shell if 语句

Shell编程之条件语句——if语句case语句

Shell编程Shell中的流程控制之if语句

shell编程之if语句

shell编程之if语句

if语句 条件测试 shell编程之条件语句