Bash if语句多个条件判断的用法与示例
时间:2026-08-17 | 作者:云端旅人 | 阅读:0简介
本教程将向你介绍如何使用带有多个条件的 Bash if 语句,以提升你的 shell 脚本编写技能。
你将学习如何有效地组合逻辑运算符,从而能够编写基于各种条件做出明智决策的脚本。
在本实验结束时,你将能够为日常任务创建多功能的自动化工具。
理解 Bash if 语句的基础知识
让我们从基础开始。在 Bash 中,if 语句可帮助你的脚本根据条件的真假来决定执行什么操作。
当你需要在 Ubuntu 系统上自动化执行任务时,这尤其有用。
在默认目录 /home/labex/project 中打开你的终端。你将在此处编写所有脚本。
首先,通过输入以下命令创建一个名为 basic_if.sh 的简单脚本文件:
添加以下代码来检查文件是否存在:
```bash #!/bin/bash if [[ -f "testfile.txt" ]]; then echo "The file exists." else echo "The file does not exist." fi ```此脚本使用 [[ -f "testfile.txt" ]] 来测试 testfile.txt 是否存在于当前目录中。
echo 命令将根据结果显示一条消息。
要运行该脚本,需使其可执行:
```bash chmod +x basic_if.sh ```然后执行它:
```bash ./basic_if.sh ```由于 testfile.txt 尚未存在,你将看到 "The file does not exist."。
让我们创建该文件以查看另一种结果:
```bash touch testfile.txt ```再次运行脚本:
```bash ./basic_if.sh ``` 现在,它应该输出 "The file exists."。
此步骤向你介绍了基本结构:if、then、else 和 fi。
双括号 [[ ]] 是现代 Bash 的一个特性。与单括号相比,它使条件测试更加可靠。
使用 AND (&&) 添加多个条件
现在,让我们通过同时检查多个条件来让你的 if 语句更加智能。
你将使用 &&(逻辑与)运算符。该运算符要求所有条件都为真时,then 代码块才会执行。
再次打开 basic_if.sh,并将其内容替换为以下更新后的脚本:
这个脚本会检查两件事:
testfile.txt是否存在(-f)- 它是否可读(
-r)
只有当这两个条件都为真时,第一条消息才会显示。
运行脚本:
```bash ./basic_if.sh ```由于你在步骤 1 中创建了 testfile.txt,并且它默认是可读的(因为 labex 用户拥有它),你会看到 "The file exists and is readable."。
为了理解 && 运算符的工作原理,让我们测试相反的情况。
更改文件的权限,使其不可读:
```bash chmod u-r testfile.txt ```再次运行脚本:
```bash ./basic_if.sh ```现在,它会输出 "The file is either missing or not readable",因为第二个条件(-r)不满足。
为了后续步骤,恢复文件的可读性:
```bash chmod u+r testfile.txt ```&& 运算符确保每个条件都必须通过。
这非常适合需要考虑多个标准的情况。
使用 OR (||) 实现灵活的条件判断
接下来要看的是 ||(逻辑或)运算符。
它的规则很直接:只要 至少一个 条件成立,then 里的代码就会执行。
遇到需要更灵活地判断条件的场景,这个运算符就特别好用。
再次打开 basic_if.sh,把内容改成下面这样:
这段脚本会检查 testfile.txt 或 backup.txt 是否存在。
因为 testfile.txt 已经在当前目录里,先运行脚本:
这时会看到 "At least one file exists."。
接着,删除 testfile.txt,专门测试一下 || 的逻辑:
然后再运行一次脚本:
```bash ./basic_if.sh ```这次它会输出 "Neither file exists",因为两个文件都不存在。
再创建一个 backup.txt,让逻辑或条件重新成立:
现在,结果又会变回 "At least one file exists"。
所以说,只要任意一个条件为真就够了的场景里,|| 运算符就很实用。
组合使用 AND 和 OR 运算符
把 && 和 || 放在一起使用,就可以写出更灵活、更复杂的判断逻辑。
这里要做的,是检查文件是否存在并满足指定条件,同时再加上一个备用条件。
再次打开 basic_if.sh,把内容更新为下面这段代码:
这段脚本的判断逻辑是:
testfile.txt不仅要存在,而且还必须可读- 或者,
backup.txt只要存在也可以
先重新创建 testfile.txt:
然后运行脚本:
```bash ./basic_if.sh ```这时会输出 "Either testfile.txt is readable or backup.txt exists",因为 testfile.txt 同时满足存在和可读这两个条件。
接着删除 testfile.txt,但保留 backup.txt:
这一次仍然会出现同样的提示,因为 backup.txt 满足了 || 后面的条件。
再把 backup.txt 也删除掉:
现在,脚本会显示 "No suitable file found."。
这一段演示的重点就在于:通过混合使用这两个运算符,可以把条件判断写得更细、更准确。
将条件应用于实际任务
最后,让我们在实际场景中运用你所学的知识:验证用户输入。
你将编写一个脚本来检查一个数字是否在某个范围内。
创建一个名为 number_check.sh 的新脚本:
添加以下代码:
```bash #!/bin/bash read -p "Enter a number between 1 and 10: " number if [[ "$number" -ge 1 ]] && [[ "$number" -le 10 ]]; then echo "Valid number: $number" else echo "Invalid number. Please enter a value between 1 and 10." fi ```这个脚本会提示你输入一个数字,然后使用 && 运算符确保该数字在 1 到 10 之间(包含 1 和 10)。
运行脚本:
```bash ./number_check.sh ```输入 5 并按下 Enter 键。你会看到 "Valid number: 5"。
再次运行脚本并输入 15,它会回应 "Invalid number. Please enter a value between 1 and 10."。
这是处理用户输入的一种实用方法,可确保你的脚本仅处理有效数据。
总结
在这个实验中,你已经掌握了如何使用 && 和 || 运算符编写带有多个条件的 Bash if 语句。
从检查文件属性到验证用户输入,你已经编写了能够根据复杂条件做出决策的脚本。
这些技能使你能够在 Ubuntu 系统上创建满足各种需求的可靠自动化工具。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- iOS Swift连续present多个页面报错或崩溃解决方法
- 时间:2026-08-21
-
- Dart中如何串联多个数据流实现流式处理
- 时间:2026-08-21
-
- SQL中COUNT DISTINCT统计多个字段的方法与写法
- 时间:2026-08-20
-
- 多个按钮如何分别绑定不同的dialog对话框实现方法
- 时间:2026-08-20
-
- GCC编译多个文件的命令写法与使用方法
- 时间:2026-08-20
-
- Spring项目多个Maven模块循环依赖问题分析与解决方法
- 时间:2026-08-20
-
- Clang编译多个文件找不到头文件的解决方法
- 时间:2026-08-18
-
- 多个来源网站列如何合并为单一列并保留其他字段信息
- 时间:2026-08-17
精选合集
更多大家都在玩
热门话题
大家都在看
更多-
- 神明蜕变逆袭RPG《星途天城》正式公测,强力神话星灵签到送,新手也能全图鉴!
- 时间:2026-10-22
-
- 蚂蚁新村小课堂今日答案10月22日 光伏发电运维值班员管理的是什么能源
- 时间:2026-10-22
-
- 蚂蚁新村2026年10月22日答案最新
- 时间:2026-10-22
-
- 蚂蚁庄园答案2026年10月23日
- 时间:2026-10-22
-
- 蚂蚁庄园今天答题答案2026年10月23日
- 时间:2026-10-22
-
- 蚂蚁庄园今日答案2026年10月23日
- 时间:2026-10-22
-
- “菊花霜"指的是秋季的哪一场霜 蚂蚁庄园今日答案10.23
- 时间:2026-10-22
-
- 小鸡答题今天的答案是什么2026年10月23日
- 时间:2026-10-22