领取嵌入式学习路线,
请加良许微信:coderliangxu-6
来自:Linux迷
链接:https://www.linuxmi.com/bash-difference-between.html
像 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。链接:https://www.linuxmi.com/bash-difference-between.html
在 Bash 中比较 $() 与 ${}
$()
to$(command)
和${}
to ${parameter}
。因此,我们可以尝试定义这两个 Bash 实体。理解 $(命令)
$(command)
在Bash中涉及命令替换。更具体地说,命令部分 in$(command)
被执行,其输出被捕获并打印在标准输出上。背后的语法$(command)
是令牌级别的。考虑执行以下命令,该命令旨在在终端上打印出当前日期。echo "今天是 $(date). LinuxMi.com 又是美好的一天。"
在 Linux 中打印日期
了解 ${parameter}
${parameter}
在Bash中涉及参数替换。根据 Bash 手册页,参数是一个值存储实体。参数实体可以与名称、数字或特殊字符相关联。大括号{}
暗示我们在处理位置参数,或者在使用的参数(参数值)后面是一个与参数名称不相关的非解释性字符,例如${animal}s
。至于位置参数,可以用一个或多个数字来表示(单个数字 0 除外)。因此,如果我们有一个名为$variable_name
的变量,则可以使用参数 替换${parameter}
来检索关联的变量值。考虑以下变量声明命令: animal=lion
echo $animals

$animals
。但是,我们可以通过如下方式使用参数替换方法成功调用我们的$animals 变量:echo ${animal}s

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

参数值的优先级希望本文能够说明 Bash 中
$()
和${}
之间的区别。如果还有什么疑问与建议,请在下面的评论框里给我们留言。良许花了一个半月的时间研发了一门 Linux 命令课程,欢迎购买学习!
课程特色:


强烈推荐一位腾讯大佬录制的 Shell 实战案例课程(已获授权):

