GA黄金甲

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)是令牌级别的K剂恐葱幸韵孪铝 ,该下令旨在在终端上打印出目今日期。

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。可是 ,我们可以通过如下方法使用参数替换要领乐成挪用GA黄金甲$animals变量:

$ echo ${animal}s

登录后复制

在下令中挪用变量

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

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

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

登录后复制

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

参数值的优先级

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

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

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

相关新闻

联系GA黄金甲

18523999891

可微信在线咨询

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

QR code
【网站地图】【sitemap】