📜  linux bash if else - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:20.209000             🧑  作者: Mango

Linux Bash if else

介绍

在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语句可以用于测试多个条件,即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语句可以用于测试多个条件。这些条件语句可以嵌套,组成更为复杂的脚本。