全面整理linux下shell中各种括号的作用及用法

当初自己在学习shell编程的时候,被各种括号的用法搞得头昏脑涨。靠着逐步的熟悉和积累,才终于掌握的所有的括号的用法。现在,把自己总结出来的分享给大家。

注:看本篇文档的前提是你已经有了bash以及shell编程的基础。

单小括号()

但小括号常见的两个作用:命令替换以及数组的初始化

命令替换

当碰到$()结构时,shell就把括号的内命令执行,并返回结果

# tmp=$(date)# echo $tmpFri Sep 18 10:22:30 CST 2020

初始化数组

# 初始化数组lnmp=(linux nginx mysql php)

双小括号(())

记住双括号有一个特点,就是括号内的要符合c语言的语法,使用变量名时不需要加上$符号的。

双小括号的用法比较多,它可以用作整数计算(不支持小数)。例如:$((3+2))

# echo $((1+3))4# n1=3# echo $((n1+7))10

只要符合c语言语法的运算扩展,都可以写在括号里

# echo $((3+4>5 ? 1 :0)) 1# echo $((3+4>9 ? 1 :0)) 0

重新给变量赋值,这个时候不可在括号外加$符

# i=1;((i++));echo $i;2# i=1;((i=100));echo $i;100

双括号还经常用在for循环中

for ((i=0;i<5;i++));do echo -n $i;done

单方括号[]

单方括号最常见用于逻辑判断中,另外它还可以作为数组的下标,以及在正则中表示一段范围

shell脚本中用于条件判断:

法语写作助手 法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31 查看详情 法语写作助手

if [ 1 > 2 ] then    ……fi

也可以作为数组下标:

# echo ${lnmp[1]}nginx

在正则中使用,表示一段范围

[0-9]  表示数子0-9都行

双方括号

和单括号一样,双方括号也用在条件判断中,但它比单方括号更加的通用。下面举一个例子:

[ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ]改成双括号[[ a > b && a > 0 ]]

单花括号{}

花括号拓展。(通配(globbing))将对花括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。

比如输入命令 rm -f {1,2}.txt将删除1.txt和2.txt文件。

单花括号中..的作用

两个点在这里表示一段范围的意思。比如

echo {1..10}  #将打印1,2,3,4,5,6,7,8,9,10

花括号还常用在shell脚本里,用于代码块。

初次之外,单花括号还可以用作变量内容的替换和删除以及变量内容的测试,给出一个常见的例子。我们常常会判断一个变量是否存在,如果不存在,则给该变量设置新值。

val=${n1:-test}

上面代码表示如果n1这个变量不存在或为空,则将val变量值设置为test,否则val值为n1变量的值

以上就是全面整理linux下shell中各种括号的作用及用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/548563.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何解决Symfony项目中的邮件发送问题?使用Composer和SymfonyMailjetMailerBridge可以!
上一篇 2025年11月9日 18:57:33
马斯克自称大脑上云,是科学还是骗术?
下一篇 2025年11月9日 18:57:37

相关推荐

  • Python 开发环境配置与调试插件推荐

    Python 开发环境配置与调试插件推荐Python 开发环境配置与调试插件推荐Python 开发环境配置与调试插件推荐Python 开发环境配置与调试插件推荐

    选择python开发环境和调试插件需根据个人习惯与项目需求决定。推荐vs code适合新手及轻量级项目,pycharm适合需要高级功能的开发者,jupyter notebook适用于数据分析;常用调试插件包括pdb、vs code python插件、pycharm debugger和ipdb;配置虚…

    2026年10月1日 • 用户投稿
    000
  • 如何在CNGBdb快速、批量上传数据?试试Aspera吧~ | CNGBdb-Question Time

    如何在CNGBdb快速、批量上传数据?试试Aspera吧~ | CNGBdb-Question Time如何在CNGBdb快速、批量上传数据?试试Aspera吧~ | CNGBdb-Question Time如何在CNGBdb快速、批量上传数据?试试Aspera吧~ | CNGBdb-Question Time如何在CNGBdb快速、批量上传数据?试试Aspera吧~ | CNGBdb-Question Time

    dr.羊 | 什么是aspera? Aspera是由IBM公司开发的一款高效数据传输软件,引入了全新的传输技术faspTM,能够不受文件大小、类型、传输距离和网络条件的限制,以最快的速度帮助用户在全球范围内迁移数据。其核心技术fasp传输协议是一种突破性的传输方案,充分利用现有的WAN基础设施和普通…

    2026年10月1日 • 用户投稿
    100
  • 使用Sublime构建Flask项目基础结构_快速启动后端服务示例

    使用Sublime构建Flask项目基础结构_快速启动后端服务示例使用Sublime构建Flask项目基础结构_快速启动后端服务示例使用Sublime构建Flask项目基础结构_快速启动后端服务示例使用Sublime构建Flask项目基础结构_快速启动后端服务示例

    搭建 flask 项目需先安装 python 和 flask 环境,接着创建清晰的项目文件结构,然后编写并运行 flask 应用代码,最后配置调试模式提升开发效率。首先确保安装 python 3.7+ 并通过 pip install flask 安装 flask;其次建议建立包含 app.py、te…

    2026年10月1日 • 用户投稿
    000
  • 如何在Sublime运行PHP代码|本地服务器配置图文详解

    如何在Sublime运行PHP代码|本地服务器配置图文详解如何在Sublime运行PHP代码|本地服务器配置图文详解如何在Sublime运行PHP代码|本地服务器配置图文详解如何在Sublime运行PHP代码|本地服务器配置图文详解

    在 sublime text 中无法直接运行 php 代码,需配置本地服务器环境。安装 xampp 或 wamp(xampp 跨平台,wamp 仅限 windows)后启动 apache 和 mysql 服务,并将 php 文件置于 htdocs 目录下即可运行。可通过方法一手动复制文件至 htdo…

    2026年10月1日 • 用户投稿
    100
  • 线上问题排查一接口拒绝连接排查思路

    在使用feign或http形式调用接口时,可能会遇到目标接口无法连接,目标服务器拒绝连接的情况。 导致该问题的原因包括: 目标服务器的防火墙配置可能已更改,导致目标端口被关闭。生产者(接口提供方)的服务可能已经崩溃。 排查思路如下: 检查目标服务器的防火墙配置,确保目标端口已开启,并重启防火墙。检查…

    2026年10月1日
    200
  • linux切换用户命令有哪些

    linux切换用户命令有哪些linux切换用户命令有哪些linux切换用户命令有哪些linux切换用户命令有哪些

    linux切换用户命令有su、sudo、su -l、login和su -s等。详细介绍:1、su命令,可以切换到其他用户账号,并让你在此用户账号下继续操作,使用su命令时,需输入要切换到的用户账号和密码;2、sudo命令,可以让普通用户以超级用户的身份执行命令,它通常用于普通用户需要执行需要管理员权…

    2026年10月1日 • 用户投稿
    300
  • linux重启网卡的命令有哪些

    linux重启网卡的命令有哪些linux重启网卡的命令有哪些linux重启网卡的命令有哪些linux重启网卡的命令有哪些

    linux重启网卡的命令有:1、ifdown/ifup命令,ifdown用于停止指定网卡的网络连接,ifup用于启动指定网卡的网络连接;2、systemctl命令,systemctl restart network用于重启网络服务;3、service命令,service network restar…

    2026年10月1日 • 用户投稿
    300
  • Sublime任务自动化 Sublime定时执行脚本方法

    Sublime任务自动化 Sublime定时执行脚本方法Sublime任务自动化 Sublime定时执行脚本方法Sublime任务自动化 Sublime定时执行脚本方法Sublime任务自动化 Sublime定时执行脚本方法

    sublime text自身不支持定时任务,但可通过操作系统的调度工具实现脚本的定时执行。具体步骤如下:1. 利用sublime的构建系统、宏和插件实现内部自动化;2. 在windows上使用任务计划程序配置定时任务,设置触发器和启动程序;3. 在macos或linux上使用cron编写定时任务命令…

    2026年10月1日 • 用户投稿
    200
  • Linux服务器安全:使用命令保护你的系统

    Linux服务器安全:使用命令保护你的系统Linux服务器安全:使用命令保护你的系统Linux服务器安全:使用命令保护你的系统Linux服务器安全:使用命令保护你的系统

    Linux服务器安全:使用命令保护你的系统 概述: 在现代互联网时代,服务器安全成为了至关重要的话题。对于使用Linux操作系统的服务器来说,有许多强大的命令可以帮助我们保护系统安全。本文将介绍一些常用的命令,帮助你提高Linux服务器的安全性。 使用防火墙保护你的服务器 防火墙是保护服务器免受未经…

    2026年10月1日 • 用户投稿
    100
  • 在Sublime中配置Python虚拟环境|确保项目隔离更专业

    在Sublime中配置Python虚拟环境|确保项目隔离更专业在Sublime中配置Python虚拟环境|确保项目隔离更专业在Sublime中配置Python虚拟环境|确保项目隔离更专业在Sublime中配置Python虚拟环境|确保项目隔离更专业

    在sublime text中配置python虚拟环境是为了避免项目依赖混乱和版本冲突,通过venv模块创建虚拟环境后,在tools > build system中新建编译系统并指定虚拟环境路径即可完成配置。1. 使用python -m venv venv命令创建虚拟环境;2. 根据系统激活环境…

    2026年10月1日 • 用户投稿
    200
  • 提升薪资的秘诀:掌握Linux运维技术

    提升薪资的秘诀:掌握Linux运维技术提升薪资的秘诀:掌握Linux运维技术提升薪资的秘诀:掌握Linux运维技术提升薪资的秘诀:掌握Linux运维技术

    提升薪资的秘诀:掌握Linux运维技术 近年来,随着信息技术的快速发展,Linux作为一种广泛应用于服务器、云计算和大数据领域的操作系统,对于运维人员来说已经成为一项必备的技能。掌握Linux运维技术不仅可以提高工作效率,还能让你在职场中脱颖而出并获取更高的薪资待遇。本文将介绍一些提升薪资的秘诀,并…

    2026年10月1日 • 用户投稿
    400
  • 备份安全:保护您的Linux服务器免受数据丢失

    备份安全:保护您的Linux服务器免受数据丢失备份安全:保护您的Linux服务器免受数据丢失备份安全:保护您的Linux服务器免受数据丢失备份安全:保护您的Linux服务器免受数据丢失

    备份安全:保护您的Linux服务器免受数据丢失 在运行Linux服务器时,数据备份是至关重要的。数据丢失可能是由硬件故障、恶意软件或人为错误引起的,这些都可能导致灾难性的后果。为了保护您的服务器数据,您需要建立一个可靠的备份系统。本文将介绍一些常用的备份方法以及如何在Linux服务器上配置备份。 定…

    2026年10月1日 • 用户投稿
    000
  • 探索Linux服务器上的Web接口安全最佳实践。

    探索Linux服务器上的Web接口安全最佳实践。探索Linux服务器上的Web接口安全最佳实践。探索Linux服务器上的Web接口安全最佳实践。探索Linux服务器上的Web接口安全最佳实践。

    探索Linux服务器上的Web接口安全最佳实践 随着互联网的快速发展,Web应用程序的安全性成为了一个越来越重要的话题。特别是在Linux服务器上部署Web接口时,我们需要采取一系列的安全措施来保护用户数据和服务器的安全。本文将探索一些在Linux服务器上实施最佳Web接口安全实践的方法,并提供相关…

    2026年10月1日 • 用户投稿
    100
  • Sublime代码片段共享 Sublime团队模板同步方案

    Sublime代码片段共享 Sublime团队模板同步方案Sublime代码片段共享 Sublime团队模板同步方案Sublime代码片段共享 Sublime团队模板同步方案Sublime代码片段共享 Sublime团队模板同步方案

    %ignore_a_1% text原生不支持开箱即用的团队协作同步机制,需借助外部工具实现。①核心方案是构建一个中心化的版本控制共享库,存放团队共用的代码片段和模板。②在packages/user目录下创建专门子目录(如teamsnippets)用于存放共享资源。③初始化git仓库并将内容推送到远程…

    2026年10月1日 • 用户投稿
    200
  • Sublime多项目切换 Sublime快速跳转不同工程

    Sublime多项目切换 Sublime快速跳转不同工程Sublime多项目切换 Sublime快速跳转不同工程Sublime多项目切换 Sublime快速跳转不同工程Sublime多项目切换 Sublime快速跳转不同工程

    sublime text通过项目文件和快捷键实现高效多项目切换与文件跳转。1. 创建项目:使用file -> open folder…打开文件夹并通过project -> save project as…保存为.sublime-project文件,同时生成记录会话…

    2026年10月1日 • 用户投稿
    200
  • 提高薪资离不开的关键技能:Linux运维

    提高薪资离不开的关键技能:Linux运维提高薪资离不开的关键技能:Linux运维提高薪资离不开的关键技能:Linux运维提高薪资离不开的关键技能:Linux运维

    提高薪资离不开的关键技能:Linux运维 随着互联网的快速发展,Linux操作系统作为一种高效、稳定的服务器操作系统得到了广泛应用。作为一个Linux运维工程师,熟练掌握Linux操作系统和相关技术,不仅可以为企业提供稳定可靠的IT基础设施,还可以为自己的薪资水平带来明显的提升。本文将介绍一些Lin…

    2026年10月1日 • 用户投稿
    100
  • Sublime结合外部终端工具优化效率|提升脚本调试与运行体验

    Sublime结合外部终端工具优化效率|提升脚本调试与运行体验Sublime结合外部终端工具优化效率|提升脚本调试与运行体验Sublime结合外部终端工具优化效率|提升脚本调试与运行体验Sublime结合外部终端工具优化效率|提升脚本调试与运行体验

    sublime text 默认控制台无法满足复杂脚本运行需求,因其不支持交互输入、输出易被截断且调试体验差。1. 可选择适配系统的终端工具:windows 用 windows terminal 或 conemu,macos/linux 用自带终端或 iterm2/tilix,跨平台可选 vscode…

    2026年10月1日 • 用户投稿
    600
  • sublime如何搭建PHP开发环境 sublime配置PHP调试的详细教程

    sublime如何搭建PHP开发环境 sublime配置PHP调试的详细教程sublime如何搭建PHP开发环境 sublime配置PHP调试的详细教程sublime如何搭建PHP开发环境 sublime配置PHP调试的详细教程sublime如何搭建PHP开发环境 sublime配置PHP调试的详细教程

    安装 php 解释器:根据操作系统选择对应方式安装 php,windows 下下载安装包并配置环境变量,macos 使用 brew install php,linux 使用 apt-get install php 或 yum install php,并通过 php -v 验证安装成功;2. 配置 s…

    2026年10月1日 • 用户投稿
    700
  • LINUX如何配置环境变量_LINUX环境变量配置方法与实践

    LINUX如何配置环境变量_LINUX环境变量配置方法与实践LINUX如何配置环境变量_LINUX环境变量配置方法与实践LINUX如何配置环境变量_LINUX环境变量配置方法与实践LINUX如何配置环境变量_LINUX环境变量配置方法与实践

    正确配置环境变量是确保Linux系统中程序正常运行的关键。首先,通过编辑用户主目录下的~/.bashrc文件,使用export命令添加如JAVA_HOME等变量,并执行source ~/.bashrc使其生效,适用于当前用户;其次,修改/etc/environment文件可设置对所有用户生效的全局变…

    2026年9月30日 • 用户投稿
    700
  • Sublime如何使用Git插件|版本控制入门到实战全覆盖

    Sublime如何使用Git插件|版本控制入门到实战全覆盖Sublime如何使用Git插件|版本控制入门到实战全覆盖Sublime如何使用Git插件|版本控制入门到实战全覆盖Sublime如何使用Git插件|版本控制入门到实战全覆盖

    sublime text 可通过安装 git 插件实现版本控制功能。首先按步骤安装插件:1. 通过 package control 安装 git 插件;2. 配置 git 环境路径,windows 用户需确保 git 已添加到系统 path,mac/linux 用户可手动设置 git 路径;3. 使…

    2026年9月30日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信