当前位置: 首页 > news >正文

Linux使用结构化命令

一、if基础结构化语句
1. 底层概念
Shell里if不直接判断真假,而是判断紧跟在if后的命令执行返回码:
命令执行成功返回0,会执行then中的代码;命令执行失败返回非0,直接跳过then分支。
2. 基础语法写法
1. 标准多行格式

bash
if 待执行判断命令
then
满足条件时执行代码
fi
2. 单行简写格式,用分号分隔语句

bash
if 命令; then 执行语句; fi
3. 二分支if-then-else
满足条件执行then,不满足直接走else分支

bash
if 命令
then
条件成立代码
else
条件不成立代码
fi
4. 多分支if-elif
连续判断多个条件,匹配到第一个成立的分支就执行,全部不匹配可搭配else收尾

bash
if 条件1
then
代码1
elif 条件2
then
代码2
elif 条件3
then
代码3
else
全部条件都不满足时执行
fi
支持if语句嵌套,实现多层复合逻辑判断。
二、test命令与单括号 [ ]
test是Shell内置条件检测工具,[ ] 是test的简写形式,左右括号内侧必须保留空格,否则语法报错。
两种写法完全等价:

bash
# 完整test写法
if test 条件; then ... fi
# 简写单括号写法
if [ 条件 ]; then ... fi

1. 整数数值判断(仅支持整数,浮点数会报错)
eq:两个数字相等
ne:两个数字不相等
gt:左边数字大于右边
ge:左边数字大于等于右边
lt:左边数字小于右边
le:左边数字小于等于右边
2. 字符串判断
字符串1 = 字符串2:两个字符串完全一致,区分大小写
字符串1 != 字符串2:两个字符串不相同
字符串1 > 字符串2:按字典序左边更大,单括号内大于号必须加反斜杠转义
字符串1 < 字符串2:按字典序左边更小,同样需要转义
n 字符串:字符串不为空
z 字符串:字符串为空
3. 文件状态检测
e 文件路径:判断文件或目录是否存在
f 文件路径:判断目标是普通文件且存在
d 文件路径:判断目标是文件夹且存在
r 文件路径:文件拥有可读权限
w 文件路径:文件拥有可写权限
x 文件路径:文件拥有可执行权限
s 文件路径:文件存在且内容不为空
三、复合逻辑条件
用于拼接多个test单括号判断,两种逻辑符号:
&& 逻辑与:前后两个条件必须同时成立,整体才为真
书写格式:[ 条件1 ] && [ 条件2 ]
|| 逻辑或:前后任意一个条件成立,整体即为真
书写格式:[ 条件1 ] || [ 条件2 ]
四、高级判断语法(bash独有)
1. 双方括号 [[ 条件 ]]
专门优化字符串判断,解决单括号的各种限制:
1. 大于小于符号不需要反斜杠转义
2. 支持通配符模糊匹配,例如判断字符串是否以指定字符开头
3. 变量包含空格时不会解析出错
4. 内部可以直接写&&、||,不用拆分多个括号
适用场景:用户名匹配、文本模糊比对、字符串大小比较
示例:if [[ $USER == "tan" ]]
2. 双括号 (( 算术表达式 ))
只处理整数数学运算,完全C语言风格运算规则:
1. 变量内部不用写$符号,直接写变量名即可
2. 支持平方**、自增、加减乘除、大于小于、逻辑与或
3. 无需转义任何比较符号
适用场景:数字大小判断、数学计算赋值
示例:if (( var1 ** 2 > 90 ))

if-then语句

test命令

test命令-数值比较

test命令-字符串比较

复合条件测试

双方括号和双括号

http://www.jsqmd.com/news/1165420/

相关文章:

  • 2026年国内语音芯片行业供应商调研:3家长期合作靠谱语音芯片厂家推荐
  • 激光器长导通 1ms 驱动电路设计:电容储能方案解决 5V 电源 0.8m 线压降
  • SpaceXAI与Cursor合作:AI编程助手从辅助工具迈向核心生产力
  • SAP PI开发手册-ERP发布服务供外部系统调用(sproxy代理类)
  • Unity XR开发环境搭建:从导入包到多平台适配全攻略
  • Python AI数据分析实战:从环境搭建到机器学习项目完整指南
  • C++深度学习特征匹配库Light_Glue_CPP:原理、部署与性能优化实战
  • 方法论解析:339题学习力诊断量表的五维架构与信效度体系
  • U盘量产修复全指南:主控识别、固件重写与避坑实战
  • Unity WebXR开发实战:用SimpleWebXR插件打造零安装AR/VR网页应用
  • 2026年西南酸汤贴牌/辣椒面/酸汤底料/红酸汤/酸汤食品品牌优选指南 贵州贵阳等地五大品质品牌参考
  • AD7490与PIC32MX664F064L的硬件协同设计与优化
  • 软实时、NTP、PTP 如何选型?矿山数采时间同步实测方案
  • 2026年7月最新郑州帝舵官方售后服务网点地址及客服电话一览 - 帝舵中国官方服务中心
  • 常平改灯超长质保门店 常平名亮汽车用品店专业车灯升级服务 - 全域观察站
  • 可灵AI NEXTGEN颁奖典礼:AI视频生成技术突破与平台架构解析
  • IP 广播音响工程企业通用标准参考指南
  • STM32CubeIDE + IAR 编译器:3 种国产 MCU 工程移植方案与 2 个常见编译错误解决
  • 豆包长对话导航脚本:DOM解析实现提问目录与空间定位
  • RS485压力传感器通信排错指南:5种常见故障现象分析与Modbus指令调试方法
  • 2026年7月最新唐山积家官方售后客服服务电话及地址网点大全 - 积家官方售后服务中心
  • 哈尔滨对讲机杂音大、听不清、断断续续根治方法 香坊双工电子现场降噪优化方案
  • C/C++项目嵌入Wren脚本引擎:轻量级双向绑定与实战指南
  • ABAP STRANS 转换器实战:3步配置内表与XML双向转换(含嵌套结构)
  • MoE架构如何优化视频生成:LingBot-Video的工程实践解析
  • LabVIEW 2023 卷积码性能对比:(2,1,5) vs (2,1,7) 在AWGN信道下的3组误码率实测
  • ESP32 + LinkBoy 5.0 实战:3种DIY时钟方案对比与代码移植避坑指南
  • 2026年7月最新重庆伯爵官方售后服务网点地址及客服电话一览 - 亨得利钟表维修中心
  • AI药物研发实战:从靶点发现到临床试验优化的全流程解析
  • ECDSA与RSA算法深度对比:TLS证书选型实战指南