Bash 脚本中的逻辑判断:条件语句、测试和布尔表达式361


Bash 脚本提供了强大的逻辑判断功能,使用户能够基于特定条件执行或跳过代码块。逻辑判断对于处理用户输入、检查文件属性、比较字符串等各种任务至关重要。

条件语句

Bash 使用条件语句来控制代码流。这些语句根据给定的条件执行或跳过一组命令。

1. if 语句


if 语句用于根据条件执行代码块。其语法如下:```
if [[ 条件 ]]; then
# 代码块
fi
```

条件可以是任何 Bash 表达式。如果表达式的结果为真(非零状态),则执行代码块;否则,跳过代码块。

2. if...else 语句


if...else 语句用于在条件为真或假时执行不同的代码块。其语法如下:```
if [[ 条件 ]]; then
# 代码块 1
else
# 代码块 2
fi
```

如果条件为真,则执行代码块 1;否则,执行代码块 2。

3. if...elif...else 语句


if...elif...else 语句用于在多个条件下执行不同的代码块。其语法如下:```
if [[ 条件1 ]]; then
# 代码块 1
elif [[ 条件2 ]]; then
# 代码块 2
else
# 代码块 3
fi
```

条件从上到下逐个检查。如果任何条件为真,则执行相应的代码块并退出语句。否则,执行 else 代码块。

测试

Bash 提供了内置命令 test,用于对文件、字符串和数字进行条件测试。test 命令的语法如下:```
test 条件
```

条件可以是以下运算符之一:
-e FILE:文件存在
-f FILE:文件是常规文件
-d FILE:文件是目录
-s FILE:文件不为空
STRING1 = STRING2:两个字符串相等
STRING1 != STRING2:两个字符串不相等
INTEGER1 -eq INTEGER2:两个整数相等
INTEGER1 -ne INTEGER2:两个整数不相等
INTEGER1 -gt INTEGER2:整数 1 大于整数 2
INTEGER1 -lt INTEGER2:整数 1 小于整数 2
INTEGER1 -ge INTEGER2:整数 1 大于或等于整数 2
INTEGER1 -le INTEGER2:整数 1 小于或等于整数 2

test 命令返回一个退出状态,0 表示真,非 0 表示假。

布尔表达式

布尔表达式是使用布尔运算符连接起来的逻辑表达式。布尔运算符有以下类型:
-a:逻辑与
-o:逻辑或
!:逻辑非

布尔表达式可以按如下顺序求值:1. 逻辑非运算符 !
2. 逻辑与运算符 -a
3. 逻辑或运算符 -o

可以通过使用括号来更改求值顺序。

示例

以下是使用逻辑判断的 Bash 脚本示例:```
#!/bin/bash
# 检查文件是否存在
if [ -e /tmp/ ]; then
echo "文件存在"
else
echo "文件不存在"
fi
# 检查用户是否输入了一个数字
if [[ $1 =~ ^[0-9]+$ ]]; then
echo "输入了一个数字"
else
echo "未输入数字"
fi
# 检查两个字符串是否相等
if [ "$name" = "John Doe" ]; then
echo "用户名为 John Doe"
fi
# 使用布尔表达式检查多个条件
if [[ $age -gt 18 && $gender = "male" ]]; then
echo "用户年龄大于 18 岁,且性别为男性"
fi
```

Bash 脚本中的逻辑判断提供了强大的功能,使用户能够基于条件控制代码流。通过使用条件语句、测试和布尔表达式,可以实现复杂的逻辑操作,从而增强脚本的灵活性、可读性和可维护性。

2024-11-28


上一篇:Bash 脚本如何自动输入 y?

下一篇:使用 Sh 执行 Bash 脚本:提升自动化和效率