📜  条件语句 |外壳脚本

📅  最后修改于: 2022-05-13 01:57:29.409000             🧑  作者: Mango

条件语句 |外壳脚本

条件语句:总共有 5 条条件语句可用于 bash 编程

  1. if 语句
  2. if-else 语句
  3. if..elif..else..fi 语句(Else If 阶梯)
  4. if..then..else..if..then..fi..fi..(嵌套if)
  5. 开关语句

它们的语法说明如下:

if 语句
如果指定条件为真,则此块将进行处理。
句法:

if [ expression ]
then
   statement
fi

if-else 语句
如果 if 部分中指定的条件不为真,则 else 部分将被执行。
句法

if [ expression ]
then
   statement1
else
   statement2
fi

if..elif..else..fi 语句(Else If 阶梯)
要在一个 if-else 块中使用多个条件,则在 shell 中使用 elif 关键字。如果表达式 1 为真,则执行语句 1 和 2,并继续此过程。如果条件都不为真,则处理其他部分。
句法



if [ expression1 ]
then
   statement1
   statement2
   .
   .
elif [ expression2 ]
then
   statement3
   statement4
   .
   .
else
   statement5
fi

if..then..else..if..then..fi..fi..(嵌套if)
嵌套 if-else 块可以在满足一个条件然后再次检查另一个条件时使用。在语法中,如果表达式 1 为假,则处理其他部分,并再次检查表达式 2。
句法:

if [ expression1 ]
then
   statement1
   statement2
   .
else
   if [ expression2 ]
   then
      statement3
      .
   fi
fi

开关语句
case 语句作为 switch 语句,如果指定的值与模式匹配,那么它将执行该特定模式的块
当找到匹配的所有相关语句时,直到双分号 (;;) 被执行。
当最后一个命令被执行时,一个案例将被终止。
如果没有匹配项,则案例的退出状态为零。

句法:

case  in
   Pattern 1) Statement 1;;
   Pattern n) Statement n;;
esac

示例程序

示例 1:
实现if语句

#Initializing two variables
a=10
b=20
  
#Check whether they are equal
if [ $a == $b ]
then
    echo "a is equal to b"
fi
  
#Check whether they are not equal
if [ $a != $b ]
then
    echo "a is not equal to b"
fi

输出

$bash -f main.sh
a is not equal to b

示例 2:
实现if.else语句

#Initializing two variables
a=20
b=20
  
if [ $a == $b ]
then
    #If they are equal then print this
    echo "a is equal to b"
else
    #else print this
    echo "a is not equal to b"
fi

输出

$bash -f main.sh
a is equal to b

示例 3:
实现switch语句

CARS="bmw"
  
#Pass the variable in string
case "$CARS" in
    #case 1
    "mercedes") echo "Headquarters - Affalterbach, Germany" ;;
      
    #case 2
    "audi") echo "Headquarters - Ingolstadt, Germany" ;;
      
    #case 3
    "bmw") echo "Headquarters - Chennai, Tamil Nadu, India" ;;
esac

输出

$bash -f main.sh
Headquarters - Chennai, Tamil Nadu, India.

注意: Shell 脚本是一种区分大小写的语言,这意味着在编写脚本时必须遵循正确的语法。