Bash 的 if 条件语句

作者:hubenchang0515日期:2025/11/7

#Bash 的 if 条件语句

Bash 的 if 条件语句的语法为:

1if 条件命令
2then
3    命令
4    ...
5elif 条件命令
6then
7    命令
8    ...
9else
10    命令
11    ...
12fi
13

其中,条件命令返回成功(0)时为真(true),返回失败(非 0)时为假(false)。

如果省略(部分)换行,则需要使用分号(;)区分:

1if 条件命令; then 命令; 命令; elif 条件命令; then 命令; 命令; else 命令; 命令; fi
2

示例:

1if test "$SHELL" = "/bin/bash"
2then
3    echo 很好
4else
5    echo 完蛋
6fi
7
  • 判断变量 SEHLL 的值是否是 /bin/bash

注意,这里的 "$SHELL" = "/bin/bash" 不要省略引号写成 $SHELL = /bin/bash;否则变量 SHELL 为空时会产生语法错误。

  • = - 判断字符串相等
  • != - 判断字符串不同

#test 命令

如上述示例代码,Bash 的条件一般使用 test 命令,格式为:

1test 条件表达式
2
3[ 条件表达式 ]      # 不可省略空格
4
5[[ 条件表达式 ]]    # 不可省略空格
6
  • test[ 是等价的,它们既是 Bash 的内置命令,也是可执行文件
  • [[ 是 Bash 的关键字,额外支持正则判断

test 命令的常用选项如下:

  • -e - 文件存在
  • -f - 文件存在且是普通文件
  • -d - 文件存在且是目录
  • -b - 文件存在且是块设备
  • -c - 文件存在且是字符设备
  • -L - 文件存在且是符号链接
  • -eq - 等于(只能用于整数,下同)
  • -ne - 不等于
  • -lt - 小于
  • -le - 小于或等于
  • -gt - 大于
  • -ge - 大于或等于

例如:

1FILE="$0"
2
3if [ -f $FILE ]; then
4    echo $FILE 是普通文件
5elif [ -e $FILE ]; then
6    echo $FILE 不是普通文件
7else
8    echo $FILE 文件不存在
9fi
10

运行代码

Establishing WebAssembly Runtime.

Standby.

Powered by Shift.

#true 和 false

Bash 的内置命令中包含 truefalse 两个命令,前者直接返回成功(0),后者直接返回失败(1)。


Bash 的 if 条件语句》 是转载文章,点击查看原文


相关推荐


hive的SQL练习3
普通网友2025/11/3

根据如上表格信息,实现如下需求: 查询五一期间(2023-05-01 ~ 2023-05-07),每个餐厅的订单总数量及排名with t as ( select *,        count(1) over(partition by restaurant_id) countNum        from orders where substr(order_date,1,10)     between '2023-05-01' and '2023-05-07' ) select d


游戏盾是如何保障游戏安全稳定的
上海云盾第一敬业销售2025/10/31

上海云盾SDK游戏盾是如何保障游戏安全稳定的 防攻击保流畅:游戏服务器易遭受 UDP Flood、CC 攻击等针对性威胁,这类攻击会导致服务器负载过高,引发玩家掉线、操作卡顿。游戏盾能深度解析游戏协议,快速识别攻击流量并进行清洗,同时依托多节点部署,将攻击流量引流至防护节点,避免源服务器受冲击,确保游戏全程流畅不中断。 阻外挂护公平:外挂、作弊脚本会破坏游戏内平衡,导致合规玩家失去兴趣,损害游戏生态。游戏盾内置外挂检测机制,可实时监控异常行为,如数据篡改、加速作弊等,通过特征匹配与行为分


前端别再乱存数据了!这3种存储方案让你的应用快如闪电
良山有风来2025/10/28

你是不是也遇到过这样的场景? 用户刚填完一个超长的表单,不小心刷新了页面,所有数据都没了... 从接口请求的数据,用户每次操作都要重新加载,体验卡成PPT... 应用离线状态下完全无法使用,用户直接流失... 别担心!今天我就带你彻底解决这些问题。看完这篇文章,你将掌握一套完整的数据交互方案,让你的应用在任何网络状态下都能流畅运行。 为什么数据存储这么重要? 想象一下,你去超市购物,每次想买什么东西,都要跑回家查一下购物清单,然后再跑回超市... 这得多累啊! 网页应用也是同样的道理。合理的数据


Bash 的变量
hubenchang05152025/10/25

#Bash 的变量 Bash 中的变量定义语法如下: 变量名=值 注意,等号(=)两边不能有空格。 变量名的命名应当遵循如下规则: 只能包含字母,数字和下划线(_),并且不能以数字开头。 不能使用 Bash 保留的关键字,如:if then else fi for while do done 等 环境变量和常量使用全大写字母,单词间使用下划线分隔 普通变量使用全小写字母,单词间使用下划线分隔 函数内的局部变量使用 local 关键字声明 例如: PI=3.1415925 URL="htt


搜索百科(5):Easysearch — 自主可控的国产分布式搜索引擎
极限实验室2025/10/23

大家好,我是 INFINI Labs 的石阳。 欢迎关注 《搜索百科》 专栏!每天 5 分钟,带你速览一款搜索相关的技术或产品,同时还会带你探索它们背后的技术原理、发展故事及上手体验等。 在上一篇我们介绍了 OpenSearch —— 那个因协议争议而诞生的开源搜索分支。今天,我们把目光转向国内,聊聊极限科技研发的一款轻量级搜索引擎:Easysearch。 引言 在搜索技术的世界里,从 Lucene 的出现到 Solr、Elasticsearch 的崛起,搜索引擎技术已经发展了二十余年。然而,随


Swift 字符串与字符完全导读(一):从字面量到 Unicode 的实战之旅
unravel20252025/10/22

前言 Swift 的 String 看起来“像 NSString 的弟弟”,但骨子里是一套全新的 Unicode 抽象模型。 String 与 Character 的本质 String:由“扩展字形簇”(extended grapheme cluster)构成的有序集合。 Character:一个扩展字形簇,人类眼中的“一个字符”,占用的字节数可变。 // 1 个 Character,由 2 个 Unicode 标量合成 let eAcute: Character = "é"


JAVA面试复习笔记(待完善)
paishishaba2025/10/20

目录 布隆过滤器 一、核心思想 二、执行逻辑详解 1. 添加元素 2. 查询元素 三、为什么会有误判? 四、关键参数与性能权衡 五、执行逻辑总结与特点 六、典型应用场景 Redis 的 SETNX 命令 一、基本语法和语义 二、简单示例 三、SETNX 的核心特性 1. 原子性 2. 简单性 3. 无过期时间 四、经典应用场景 1. 分布式锁(最经典的应用) 五、SETNX 的局限性及改进方案 问题1:非原子性的设置过期时间 解决方案:使用 SET 命令


Windows Server,如何使用WSFC+nginx实现集群故障转移
IT橘子皮2025/10/19

在 Windows Server 环境中结合 WSFC(Windows Server Failover Clustering)和 Nginx 实现集群故障转移,核心目标是构建一个既具备应用层高可用性(由 Nginx 负责),又具备基础设施层高可用性(由 WSFC 保障 Nginx 服务本身)的稳固架构。下面这张图清晰地展示了这套架构的完整工作流程: 上图展示了WSFC如何通过心跳检测监控Nginx主节点的状态,并在故障发生时自动将服务(包括虚拟IP和Nginx进程)转移到备节点。下面我们详细拆


AI修图革命:IOPaint+cpolar让废片拯救触手可及
倔强的石头_2025/10/18

文章目录 前言【视频教程】1.什么是IOPaint?2.本地部署IOPaint3.IOPaint简单实用4.公网远程访问本地IOPaint5.内网穿透工具安装6.配置公网地址7.使用固定公网地址远程访问总结 前言 旅行拍照时意外拍到路人闯入?证件照背景不合规?传统修图软件学习成本高,在线工具又担心隐私泄露?IOPaint的出现给出了完美解方——这款开源AI修图工具支持一键擦除多余物体、修复老照片瑕疵,所有操作在本地完成,无需上传原始图片。特别适合摄影爱好者和自媒体创作者,其


“签名”这个概念是非对称加密独有的吗?
你的人类朋友2025/10/16

前言 🍃 你好啊,我是你的人类朋友 ☺️ 本篇文章主要来自于我之前在工作中犯的一个对“签名”的概念的误解 问大家一个问题: "签名"这个概念是非对称加密独有的吗? 先说答案:不是。 虽然【数字签名】确实是非对称加密技术的重要应用,但【"签名"】这个概念在密码学中有着更广泛的含义和应用。 今天就来澄清这个误解,也是我之前在学习信息安全的过程中犯的一个错误 🙀。 正文 一、签名的本质目的 在密码学中,"签名"的核心目的是提供: 身份认证 - 证明消息确实来自声称的发送方 完整性验证 - 确保消

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2025 聚合阅读