条件语句 |外壳脚本
条件语句:总共有 5 条条件语句可用于 bash 编程
- if 语句
- if-else 语句
- if..elif..else..fi 语句(Else If 阶梯)
- if..then..else..if..then..fi..fi..(嵌套if)
- 开关语句
它们的语法说明如下:
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 脚本是一种区分大小写的语言,这意味着在编写脚本时必须遵循正确的语法。