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

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

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

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 又是美好的一天。"

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

在 Linux 中打印日期

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

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

了解 ${parameter}

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

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

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

考虑以下变量声明命令:

$ animal=lion

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

$ echo $animals

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

在命令中声明变量

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

$ echo ${animal}s

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

在命令中调用变量

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

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

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

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

参数值的优先级

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

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月3日 21:09:40
下一篇 2025年11月3日 21:14:08

相关推荐

  • dos2unix命令解决 Shell 脚本无法执行的问题

    大家好,又见面了,我是你们的朋友全栈君。 解决问题 在执行脚本时,报了以下错误: -sh: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory 出现上述类似的错误,原因是脚本在Windows下编辑后上传到Linux系统…

    2025年12月5日 运维
    000
  • 汇总常用的linux Bash快捷键(持续更新~)!

    下面由linux系统教程栏目给大家介绍常用的 Bash 快捷键,熟悉 Bash 快捷键可以提高效率,希望对需要的朋友有所帮助! 熟悉 Bash 快捷键来提高效率 bash快捷键其实是gnu readline快捷键,gnu readline library是一个来接受用户输入的gnu软件包。它是包括b…

    运维 2025年12月4日
    000
  • linux bash 是什么意思

    linux bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令;Bash还能从文件中读取命令,这样的文件称为脚本;和其他Unix shell一样,它支持文件名替换、管道、here文档、命令替换、变量等等。 本文操作环境:linux5.9.8系统、Dell G3电脑。 linu…

    2025年12月4日
    100
  • 架构之:数据流架构

    简介 在系统设计中,有时我们需要对输入数据进行处理和转换,这些操作通常是独立的,处理后的数据会被放置到指定的输出中。 在日常工作中,常常会遇到这样的数据处理任务,这时可以采用数据流架构。 数据流架构在实际应用中有多种流形式,最常见的包括I/O流、I/O缓冲区和管道等。不同组件或模块通过这些流进行连接…

    2025年12月4日
    000
  • 如何让windows更好的支持Linux开发

    shigen的日常开发用到的就是mac+windows,在我的mac里也安装了windows的虚拟机。让我比较烦的是linux或者说mac上的命令在windows上不能用,再次降低了我的开发效率。 window终端 要是在windows上执行一个脚本,就必须用第三方的软件了,还要切换目录。 shig…

    2025年11月27日 系统教程
    000
  • Linux磁盘管理(命令行)

    大家好,很高兴再次与你们见面,我是你们的朋友全栈君。 本文目录包括:查看磁盘设备、文件系统格式简介、磁盘管理命令、磁盘分区、磁盘格式化、挂载/卸载磁盘。 查看磁盘设备 我们可以使用df或者ls命令来查看Linux系统中的磁盘设备。例如,图中的sdb1是我连接到Ubuntu的SD卡,而sda是系统硬盘…

    2025年11月26日 运维
    000
  • Linux学习23-Xftp上传文件显示乱码问题

    当我们在windows上创建包含中文字符的新文件,并使用xftp上传到linux服务器时,可能会遇到文件显示乱码的问题。 Windows默认的编码是GBK,而Linux默认使用UTF-8编码,Xftp传输工具的编码设置也会影响文件的显示。 在Windows电脑上新建一个名为“中文.txt”的txt文…

    2025年11月26日 系统教程
    000
  • BASH和DOS有什么区别

    bash和dos控制台之间的主要区别在于以下3个方面: (推荐教程:linux教程) 1、BASH命令区分大小写,而DOS命令则不区分; 2、在BASH下,/ character是目录分隔符,作为转义字符。在DOS下,/用作命令参数分隔符,是目录分隔符; UNIX技术手册 Unix in a Nut…

    2025年11月25日 运维
    100
  • 5种CentOs查看系统版本的方法

    下面由centos教程栏目给大家介绍5种centos查看系统版本的方法,希望对需要的朋友有所帮助! CentOs查看系统版本的几种方法 方法1 命令:lsb_release -a 示例: 法语写作助手 法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。 31 查看详…

    运维 2025年11月10日
    000
  • windows下的kali配置

    准备工作 打开Windows的设置界面,进行初始配置。 进入开发者模式,开启高级功能。 启用Windows的子系统Linux支持,确保系统兼容性。 在Windows应用商店中搜索并选择Kali Linux进行安装。 安装完成后,启动Kali Linux,系统会提示输入用户名和密码。 在尝试更新系统源…

    2025年11月10日 系统教程
    500
  • 有关Linux中的bash编程讲解

    为何叫做shell?在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系。我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为“操作系统(operating system)”的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作…

    2025年11月10日
    100
  • Linux–Bash 和 Shell讲解

    一、什么是 shell?        狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工作。        系统合法的 shell 均写在 /etc/shells 文件中。 …

    2025年11月10日 运维
    000
  • linux bash是什么?

    bash (gnu bourne-again shell) 是许多linux发行版的默认shell 。事实上,还有许多传统unix上用的shell,例如tcsh、csh、ash、bsh、ksh等等,shell script大致都类同,当您学会一种shell以后,其它的shell会很快就上手,大多数的…

    2025年11月9日 运维
    000
  • 蓝桥ROS机器人系统更新和功能包安装记录

    直接进行系统更新可能会遇到错误,因此需要按照以下步骤进行配置和更新: 首先,使用以下PGP公钥进行配置: —–BEGIN PGP PUBLIC KEY BLOCK—–Version: GnuPG v1mQINBFzvJpYBEADY8l1YvO7iYW5gUESyzsTGnMvVUmlV…

    2025年11月8日
    000
  • Kali修改密码&忘记密码

    在kali linux 2020及其他版本中,如果您希望以root用户身份登录并获得更高的权限,可以按照以下步骤来创建并使用root用户。虽然默认情况下,kali linux不允许直接以root用户登录,但可以通过以下方法绕过这一限制。 详细内容:https://www.php.cn/link/17…

    2025年11月8日 运维
    100
  • 终端iTerm配置别名alias重启后别名未生效问题分析与解决

    在macos系统中,如何解决iterm2重启后别名(alias)失效的问题?让我们详细探讨这个问题及其解决方案。 问题来源 在MacOS中,默认安装了Python 2.7。然而,系统可以支持多个Python版本。如果希望使用python命令直接启动Python 3而不是Python 2.7,我们需要…

    2025年11月8日 运维
    000
  • 面试官:MySQL 如何定时备份数据库?

    在处理数据的过程中,可能会发生数据错误甚至导致数据库崩溃,而定时备份可以有效保护数据库。本文主要介绍了几种方法来进行mysql数据库的定时备份。 01 使用mysqldump命令备份数据在MySQL中,提供了一个方便的命令行工具mysqldump,用于导出数据库数据和文件。我们可以通过命令行直接实现…

    2025年11月8日 运维
    000
  • 进程通信(一)无名管道和有名管道

    进程通信是指不同进程之间进行信息交换的过程。 《王道考研复习指导》提到,管道通信是一种特殊的消息传递方式。所谓的“管道”,是指用于连接一个读进程和一个写进程以实现它们之间通信的共享文件,也称为pipe文件。发送进程(即写进程)通过字符流形式将大量数据写入管道(共享文件),而接收进程(即读进程)则从管…

    2025年11月8日 运维
    000
  • linux下java的环境配置

    大家好,又见面了,我是你们的朋友全栈君。 今天我们来聊聊在Linux下配置Java环境的详细步骤。之前在配置Hadoop开发环境时,我已经对Java环境的设置有所了解,现在让我们在Ubuntu虚拟机上进行Java环境的配置。 文章目录 Linux下Java的环境配置删除原有的Java环境去官网下载相…

    2025年11月8日 运维
    100
  • 大数据库入门之脚本批处理

    为了实现文章的伪原创,我们将重写提供的内容,同时保持其核心意义不变。以下是重写后的版本: 1、执行批处理命令的脚本文件 all.sh 为了创建和设置执行批处理命令的脚本文件 all.sh,我们需要执行以下步骤: mkdir -p /usr/shellcd /usr/shelltouch /usr/s…

    2025年11月8日 系统教程
    000

发表回复

登录后才能评论
关注微信