Shell系列(9) - if elif else条件判断语句

296 阅读2分钟

「4月日新计划更文活动」

if 语句

  • if 是一个常见的条件语句,在正常的使用中我们都会见到
  • 用途:可以使用它们来测试变量,文件及其状态
if [ expression ]; then
   # 当表达式为真时执行的代码
fi

参数说明:

  • expression是一个条件表达式,如果表达式为True,则执行then后面的命令,否则就跳过该命令执行脚本中其他指令,then子句后面可以跟随多条语句
#! /bin/sh
# 判断 /bin/bash 是否是一个常规文件 
if [ -f /bin/bash ];
    then echo "/bin/bash is a file"
fi

## 判断文件是否创建成功
echo "hello,ok !" >message.txt
 if [ -f ./message.txt ]; then echo "file has been created."; fi   

注意点

  • 最后必须以fi作为闭合,fi就是if倒过来的拼写,由于Shell没有提供大括号{}来表示代码块,所以需要使用fi关键字来表示if结构的结束
  • expression表达式后需要加上一个分号,分号的作用是表示if子句已经结束,后面的代码是then子句
  • 在Shell程序中,如果想要将多条命令放在同一行中,则需要使用分号将其隔开

特殊用法

  • 在Shell中,还有一个特殊的命令,称为空命令,其表示方法是一个冒号“:”,该命令不做任何事情,但是它的退出状态永远是0
if :; then echo "always true"; fi

if else 语句

if [ expression ]; then
   # 当表达式为真时执行的代码
else
   # 当表达式为假时执行的代码
fi
  • expression表示if语句的执行条件,可以是条件表达式或者一个Shell命令。如果expression的值为真,则执行then子句中的语句,如果为假,则执行else子句中的语句,最后通过fi关键词结束整个fi代码块。

if elif语句

if expression1
then
   statement1
   statement2
   …
elif expression2
then
   statement3
   statement4
else
   statementn
   ..
fi
  • expression1表示整个if elfi语句结构中的第1个条件表达式,如果该条件表达式的值为真,则执行第1个then子句中的语句statement1statement2等;否则,继续下面的判断。如果表达式expression2的值为真,则执行第2个then子句中的语句,如果所有的条件表达式的值都为假,则执行最后的else子句中的语句。最后是if elif结构的结束标志fi