为什么Bash中的“[“和“]“周围应该有空格

2024-05-01 11:20
文章标签 空格 bash 应该 周围

本文主要是介绍为什么Bash中的“[“和“]“周围应该有空格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题:

我试图编写一个使用 if 语句的 Bash 脚本。

if[$CHOICE -eq 1];

脚本一直在报错,直到我在 [ 前后并在 ] 之前加了一个空格,如下所示:

if [ $CHOICE -eq 1 ];

我的问题是,为什么在 Bash 中方括号周围的空格如此重要?


回答:

在 Bash 环境下,使用命令 help [ 查看方括号的帮助信息:

root@linux:~# help [
[: [ arg... ]Evaluate conditional expression.This is a synonym for the "test" builtin, but the last argument mustbe a literal `]', to match the opening `['.

是用于对表达式求值的。它是内置命令 test 的同义词,使用时其最后一个参数必须是字面量 ],以匹配开头的 [

然而,尽管它们做了完全相同的事情,test 却有一个更详细的帮助页面。使用命令 help test 以查询更多信息。

test: test [expr]Evaluate conditional expression.Exits with a status of 0 (true) or 1 (false) depending onthe evaluation of EXPR.  Expressions may be unary or binary.  Unaryexpressions are often used to examine the status of a file.  Thereare string operators and numeric comparison operators as well.The behavior of test depends on the number of arguments.  Read thebash manual page for the complete specification.

根据对 expr 的求值,以0 (true)1 (false)的状态退出。表达式可以是一元或二元的。

一元表达式通常用于检查文件的状态。还有字符串运算符和数字比较运算符。

test 的行为取决于参数的数量。请阅读 bash 手册页 以获取完整的规范。

此外,请注意,我故意使用 help test 而不是 man test。这是因为 test[ 是 shell 的内置命令。它们的功能集可能与手册页中描述的 coreutils 的 /bin/test/bin/[ 命令不同。


参考:

  • stackoverflow question 9581064

相关阅读:

  • 为什么在可执行文件或脚本名称之前需要./(点-斜杠)
  • sh和Bash的区别
  • 2>&1是什么意思
  • 如何使用bash脚本并行运行多个程序
  • 为什么要使用xargs命令
  • 一文掌握全网最全文件操作命令!120+命令

这篇关于为什么Bash中的“[“和“]“周围应该有空格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951554

相关文章

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

bat脚本启动git bash窗口,并执行命令方式

《bat脚本启动gitbash窗口,并执行命令方式》本文介绍了如何在Windows服务器上使用cmd启动jar包时出现乱码的问题,并提供了解决方法——使用GitBash窗口启动并设置编码,通过编写s... 目录一、简介二、使用说明2.1 start.BAT脚本2.2 参数说明2.3 效果总结一、简介某些情

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

编程应该用 Mac 还是 PC ?

『有人的地方,就有江湖』—徐克。笑傲江湖。     序     一个竞争的市场,就会有对立的产生,这世界存在著很多不同的领域,领域好比是个江湖的缩影,因此就有许多门派的纷争,例如说浏览器领域有著最大宗的IE派,门派成长速度飞快,武功版号跳的跟台湾物价指数一样快的Chrome门,不断被模仿,一直被超越的Opera派;韧性极强,一直对抗几大势力的Firefox派等等,程序语言也有自己的领域

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

虚拟主机应该如何设置

假设我们在一个独立的环境下,现在我的根目录在D盘下的wamp下的www下!现在先来配置虚拟主机: 假设我们在一个独立的环境下,现在我的根目录在D盘下的wamp下的www下!现在先来配置虚拟主机: 1.先打开apache的配置文件httpd.conf,并去掉#Include 0conf/extra/httpd-vhosts.conf前面的#号。 2.打开apache的apach

【微信小程序】如何加空格?

排除: 直接加&nbsp;是没有效果的。直接按空格键是没有效果的。 解决: 给文字加上 decode="{{true}}" 属性之后再用&nbsp; <text decode="{{true}}">医院&nbsp;&nbsp;</text><text>科室</text>

为什么你应该从现在开始就写博客---刘未鹏

(一)为什么你应该(从现在开始就)写博客 用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样) 让我说得更明确一点:用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。Note:碎碎念不算思考、心情琐记不算思考、唠唠叨叨也不算思考、没话找话也不算思考

教你如何应对算法备案难点以及备案后应该做什么?

教你如何应对算法备案难点以及备案后应该做什么? 自去年六月至今年八月,网信办已公布七批备案清单,共计1919项算法成功备案,标志着算法备案步入常态。主体备案虽门槛较低,算法备案却考验专业,尤其是《算法安全自评估报告》成为监管焦点,逾百项审查要点需逐一回应。算法数据的输入输出、模型架构、训练数据、策略逻辑与风险管理,每一环皆需详尽说明。下面,小编给大家着重讲讲互联网算法备案申请的难点以及备案