银娱

Bash 中的 ${} 和 $() 有什么区别

像 Linux 这样的基于 GNU 的操作系统依赖于一个名为 Bash 的命令语言解释器或 Shell 来完成它们的大部分盘算任务和目标。

Bash 是 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)被执行,其输出被捕获并打印在标准输出上。

牛逼。〗铀交畋乇傅 N 个开源项目!赶忙收藏

登录后复制

背后的语法$(command)是令牌级别的?悸侵葱幸韵旅,该命令旨在在终端上打印出目今日期。

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

登录后复制

在 Linux 中打印日期

上述执行可以用以下方法解释。首先,执行 date 命令并将其输出作为参数包括在 echo 命令中。

在这里,我们可以假设命令替换在重新包括在主 shell 之前在单独的子 shell 中执行。

了解 ${parameter}

${parameter}在Bash中涉及参数替换。凭据 Bash 手书页,参数是一个值存储实体。参数实体可以与名称、数字或特殊字符相关联。

大括号{}体现我们在处理位置参数,或者在使用的参数(参数值)后面是一个与参数名称不相关的非解释性字符,例如${animal}s。

至于位置参数,可以用一个或多个数字来体现(单个数字 0 除外)。因此,如果我们有一个名为$variable_name的变量,则可以使用参数 替换${parameter}来检索关联的变量值。

考虑以下变量声明命令:

$ animal=lion

登录后复制

让我们挪用 animal 变量以实验将变量值复数:

$ echo $animals

登录后复制

在命令中声明变量

在标准输出中不会打印任何内容,因为 Bash 不睬解变量$animals。可是,我们可以通过如下方法使用参数替换要领乐成挪用我们的$animals变量:

$ echo ${animal}s

登录后复制

在命令中挪用变量

在某些情况下,叹息号可能会在参数替换实现的第一个左大括号之后泛起。在这种情况下,就会泛起变量间接的看法。另外,搜索民众号Linux就该这样学后台回复“猴子”,获取一份惊喜礼包。

变量值优先于参数值,如下所示:

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

登录后复制

Bash 中的 ${} 和 $() 有什么区别

参数值的优先级

希望本文能够说明 Bash 中$()和${}之间的区别。

以上就是Bash 中的 ${} 和 $() 有什么区别的详细内容,更多请关注本网内其它相关文章!

免责申明:以上展示内容来源于相助媒体、企业机构、网友提供或网络收集整理,版权争议与本站无关,文章涉及见解与看法不代表银娱滤油机网官方立场,请读者仅做参考。本文接待转载,转载请说明来由。若您认为本文侵犯了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您立即联系银娱实时修正或删除。

相关新闻

联系银娱

13452372176

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节假日休息

QR code
网站地图网站地图
友情链接:威斯尼斯wns888入口  尊龙凯时  腾博会官网  海洋之神  兴发娱乐  腾博会官网  尊龙凯时  leyu  尊龙凯时  公海彩船  BG大游  BG大游