📅  最后修改于: 2023-12-03 15:17:20.209000             🧑  作者: Mango
在Shell脚本中,if-else语句是最常用的条件语句之一,可用于执行不同的代码块,具体取决于条件是否为真。if-else语句的语法格式如下:
if [ condition ]
then
statement1
else
statement2
fi
if [ condition ]
:if语句的条件语句,condition是要测试的条件。要注意if语句的结束括号后面有个空格。then
:if语句的条件部分结束后,执行then中的语句。statement1
:如果if的条件为真,则执行此处的语句。else
:如果if的条件为假,则执行else中的语句。statement2
:如果if的条件为假,则执行此处的语句。fi
:if语句结束的标记。#!/bin/bash
# 如果目录存在,则输出"Directory exists",否则输出"Directory does not exist"
if [ -d "/path/to/directory" ]
then
echo "Directory exists"
else
echo "Directory does not exist"
fi
在if语句中,条件语句可以是比较操作符、文件测试操作符、逻辑操作符或正则表达式。下面是一些常见的操作符:
-eq
:等于-ne
:不等于-gt
:大于-ge
:大于等于-lt
:小于-le
:小于等于-d
:是否为目录-f
:是否为文件-e
:文件是否存在-s
:文件是否存在且非空-r
:是否可读-w
:是否可写-x
:是否可执行-a
:逻辑与-o
:逻辑或!
:逻辑非=~
:匹配正则表达式除了else,还有一种if语句可以用于测试多个条件,即else-if语句,它的语法格式如下:
if [ condition1 ]
then
statement1
elif [ condition2 ]
then
statement2
else
statement3
fi
#!/bin/bash
# 如果目录存在并且可写,则输出"Directory exists and is writable"
# 如果目录存在但是不可写,则输出"Directory exists but is not writable"
# 如果目录不存在,则输出"Directory does not exist"
if [ -d "/path/to/directory" -a -w "/path/to/directory" ]
then
echo "Directory exists and is writable"
elif [ -d "/path/to/directory" -a ! -w "/path/to/directory" ]
then
echo "Directory exists but is not writable"
else
echo "Directory does not exist"
fi
if-else语句是Shell脚本中的基本结构之一,用于检测条件并执行相应的代码块。if语句的条件可以是比较操作符、文件测试操作符、逻辑操作符或正则表达式。else-if语句可以用于测试多个条件。这些条件语句可以嵌套,组成更为复杂的脚本。