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

【linux】bash脚本中括号问题

在 Bash 脚本里,中括号 [ ] 其实是 test 命令的同义词,[ 是一个命令,] 是该命令的最后一个参数,所以中括号内外的空格会影响命令执行,下面详细说明:

中括号内侧空格
中括号内侧与操作数之间必须有空格,若缺少空格,Bash 会把操作数和中括号视为一个整体,从而导致命令执行出错。

错误示例:

#!/bin/bash
git_app="abc"
if ["$git_app" = "abc"]; thenecho "带参数编译"
elseecho "原生编译"
fi

执行上述脚本会报错,Bash 会把 [“$git_app” 当作一个命令,由于该命令不存在,就会提示找不到命令。

正确示例:

#!/bin/bash
git_app="abc"
if [ "$git_app" = "abc" ]; thenecho "带参数编译"
elseecho "原生编译"
fi

在中括号内侧和操作数之间添加空格后,[、“$git_app”、=、“health”、] 会被正确识别为 test 命令的参数,脚本就能正常执行。

中括号外侧空格
中括号外侧与其他元素(如 if、; 等)之间的空格不是强制要求,但为了代码的可读性,通常会添加空格。

示例:

#!/bin/bash
git_app="abc"
if["$git_app" = "abc"];thenecho "带参数编译"
elseecho "原生编译"
fi

上述代码虽然能正常执行,但可读性较差,添加空格后代码会更易读:

#!/bin/bash
git_app="abc"
if [ "$git_app" = "abc" ]; thenecho "带参数编译"
elseecho "原生编译"
fi

总结
中括号内侧空格是必须的,缺少会导致命令执行出错;中括号外侧空格不影响命令执行,但添加空格能提升代码的可读性。

http://www.xdnf.cn/news/14505.html

相关文章:

  • 巧用云平台API实现开源模型免费调用的实战教程
  • Linux嵌入式和单片机嵌入式的区别?
  • 数据库从零开始:MySQL 中的 DDL 库操作详解【Linux版】
  • excel 数据透视表介绍
  • 技术革新赋能楼宇自控:物联网云计算推动应用前景深度拓展
  • 【图像处理入门】11. 深度学习初探:从CNN到GAN的视觉智能之旅
  • Arduino入门教程:11、直流步进驱动
  • C#语言入门-task2 :C# 语言的基本语法结构
  • Oracle 中唯一索引对行锁的影响
  • 【支持向量机】SVM线性可分支持向量机学习算法——硬间隔最大化支持向量机及例题详解
  • 股票心理学习篇:交易的人性弱点 - 频繁交易
  • GNSS介绍
  • 基于React+Express的个人账单管理系统
  • 【Linux手册】进程优先级:操作系统世界里的“资源争夺”
  • Redis 的优势有哪些,它是CP 还是 AP?CAP 理论又是什么?
  • SpringBoot扩展——发送邮件!
  • 医疗低功耗智能AI网络搜索优化策略
  • 跨越网络界限,轻松实现广域网打印——HttpPrinter报表打印解决方案
  • Linux基本指令篇 —— mkdir指令
  • 苍穹外卖--WebSocket、来单提醒、客户催单
  • 【漏洞复现】Apache Kafka Connect 任意文件读取漏洞(CVE-2025-27817)
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_项目里程碑示例(CalendarView01_22)
  • 基于ARM SoC的半导体测试
  • windows,java后端开发常用软件的下载,使用配置
  • python校园拼团系统
  • A 股无风不起浪!金融吸血科技
  • 李宏毅2025《机器学习》第一讲-生成式AI:技术突破和未来发展
  • NAT 与代理服务器 -- NAT,NAPT,正向代理,反向代理
  • RabbitMQ概念
  • 基于python的web系统界面登录