0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在 Bash 中比较 $() 与 ${}

lhl545545 来源:Linux迷 作者:Linux迷 2022-09-09 09:24 次阅读

Linux 这样的基于 GNU 的操作系统依赖于一个名为 Bash 的命令语言解释器或 Shell 来完成它们的大部分计算任务和目标。 BBash 是 Bourne Again Shell 的缩写,Bunne Again Shell 是一个双关的名称,是对 Bourne Shell (即 Steven Bourne 发明)的致敬。在兼容性方面,Bash 和 sh 是绝配。C shell ( csh ) 和Korn shell ( ksh ) 中明显的有用特性也包含在这个 shell 语言解释器中。 在实现方面,Bash 旨在符合 IEEE POSIX 规范(IEEE 标准 1003.1)工具部分和 IEEE POSIX Shell。因此,作为一种交互式和编程工具,Bash 提供的功能改进胜过 sh 中的改进。 Linux 和其他基于 GNU 的操作系统的用户不必仅仅依赖Bash作为他们的主要命令语言解释器,因为像 csh 这样的 shell 版本也预先打包在这些系统中。由于其独特的 shell 属性(如可移植性),Bash 仅配置为用作默认 Linux shell。

在 Bash 中比较 $() 与 ${}

为了比较与 Bash 环境相关的这两个属性,我们必须重申$()to$(command)和${}to${parameter}。因此,我们可以尝试定义这两个 Bash 实体。

理解 $(命令)

$(command)在Bash中涉及命令替换。更具体地说,命令部分 in$(command)被执行,其输出被捕获并打印在标准输出上。 背后的语法$(command)是令牌级别的。考虑执行以下命令,该命令旨在在终端上打印出当前日期。


echo "今天是 $(date). LinuxMi.com 又是美好的一天。"

a1bd470c-2fcf-11ed-ba43-dac502259ad0.png

在 Linux 中打印日期

上述执行可以用以下方式解释。首先,执行 date 命令并将其输出作为参数包含在 echo 命令中。 在这里,我们可以假设命令替换在重新包含在主 shell 之前在单独的子 shell 中执行。

了解 ${parameter}

${parameter}在Bash中涉及参数替换。根据 Bash 手册页,参数是一个值存储实体。参数实体可以与名称、数字或特殊字符相关联。 大括号{}暗示我们在处理位置参数,或者在使用的参数(参数值)后面是一个与参数名称不相关的非解释性字符,例如${animal}s。 至于位置参数,可以用一个或多个数字来表示(单个数字 0 除外)。因此,如果我们有一个名为$variable_name的变量,则可以使用参数 替换${parameter}来检索关联的变量值。 考虑以下变量声明命令:


$ animal=lion

让我们调用 animal 变量以尝试将变量值复数:


$ echo $animals

a1d9ad20-2fcf-11ed-ba43-dac502259ad0.png在命令中声明变量 在标准输出中不会打印任何内容,因为 Bash 不理解变量 $animals。但是,我们可以通过如下方式使用参数替换方法成功调用我们的$animals 变量:


$ echo ${animal}s

a1e70e0c-2fcf-11ed-ba43-dac502259ad0.png在命令中调用变量 在某些情况下,感叹号可能会在参数替换实现的第一个左大括号之后出现。在这种情况下,就会出现变量间接的概念。 变量值优先于参数值,如下所示:


$ animal=lion $ echo $animal$ lion=rafiki$ echo $lion$ echo ${!animal}

a1f55a20-2fcf-11ed-ba43-dac502259ad0.png
参数值的优先级 希望本文能够说明 Bash 中$()和${}之间的区别。 如果还有什么疑问与建议,请在下面的评论框里给我们留言。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11300

    浏览量

    209403
  • 终端
    +关注

    关注

    1

    文章

    1131

    浏览量

    29870
  • 解释器
    +关注

    关注

    0

    文章

    103

    浏览量

    6509

原文标题:Bash 中的 ${} 和 $() 有什么区别

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    详解Linux Bash命令

    Bash 是一种相当强大的编程语言,而且也很容易上手。
    发表于 08-15 09:12 1612次阅读

    开发人员必须具备的Bash脚本知识

    您可以使用 Bash 脚本自动执行各种任务。掌握基础知识并开始您的 Bash 脚本之旅。
    发表于 09-27 09:09 426次阅读

    如何在bash shell脚本中使用变量

    如果你使用编程语言编写过程序,那么一定接触过变量。而在 bash 脚本的编写时,变量也是一个很重要的概念。今天我们分享一下如何在 bash 脚本中使用变量。
    发表于 12-02 16:32 2105次阅读
    如何在<b class='flag-5'>bash</b> shell脚本中使用变量

    请问AD17的PCB文件怎么PADS中比较完整的打开?

    请问AD17的PCB文件 怎么才能在pads中比较完整的打开? 谢谢~
    发表于 03-19 01:31

    Linux之bash的主要介绍

    Again SHell(bash) - C SHell(csh) - KornSHell(ksh) - zsh各个shell的功能都差不太多,某些语法的下达下面有些区别,Linux预设就是bash。这里主要介绍
    发表于 07-11 06:53

    AI算法中比较常用的模型都有什么?

    AI算法中比较常用的模型都有什么
    发表于 08-27 09:19

    Delphi中比较GUID是否相等

    Delphi中比较GUID是否相等,CompareMem(@guid1, @guid2, SizeOf(TGUID)),最开始时想到的方法
    发表于 06-22 10:11 1707次阅读

    高级Bash 脚本编程指南

    高级Bash 脚本编程指南
    发表于 10-26 08:33 7次下载
    高级<b class='flag-5'>Bash</b> 脚本编程指南

    目前深度学习中比较普及的“物件检测”应用

    接下来的重点,就是目前深度学习中比较普及的“物件检测”应用,重点主要有以下三部分: 1. 简单说明“物件检测”的内容。 2. 使用本项目的 detecnet 物件分类指令,进行多样化的推理识别测试
    的头像 发表于 06-09 15:46 1858次阅读
    <b class='flag-5'>在</b>目前深度学习<b class='flag-5'>中比较</b>普及的“物件检测”应用

    bash手册

    本文简要介绍了bashshell(版本:5.12020年12月21日)。这是GNU Bash参考手册第5.1版,最后一次更新于2020年12月21日,对于Bash,版本5.1。
    发表于 08-04 17:45 3次下载

    bash中如何创建函数

    当你的 bash 脚本中代码非常多的时候,会看起来很混乱,其中有部分代码有可能是重复的。这个时候,可以使用函数来避免重复的代码。
    的头像 发表于 12-14 17:31 1156次阅读

    Bash脚本中特殊变量$0是什么?

    Bash 脚本中,`$0` 是一个特殊变量,它代表当前脚本的路径和名称。这个变量用于表示脚本自身,它是 Bash 环境中的一个重要组成部分。`$0` 变量是一个只读变量,无法更改。
    的头像 发表于 05-12 14:41 1843次阅读

    bash中如何进行各种文件重定向呢?

    本文会用以下测试程序,来演示bash中,如何进行各种文件重定向
    的头像 发表于 08-25 09:31 1217次阅读
    <b class='flag-5'>在</b><b class='flag-5'>bash</b>中如何进行各种文件重定向呢?

    BASH shell脚本篇—函数

    函数是代码重用的最重要方式。Bash函数可以定义为一组命令,bash脚本中多次调用。
    的头像 发表于 10-20 16:31 1100次阅读

    BASH shell脚本篇—文件处理介绍

    Bash Shell脚本中,可以使用多种方法来对文件进行操作,包括读取文件或写入文件。
    的头像 发表于 10-23 16:51 625次阅读