What is the difference between ${} and $() in Bash

Release: 2023-08-02 15:30:44
forward
1549 people have browsed it

GNU-based operating systems like Linux rely on a command language interpreter or shell called Bash to accomplish most of their computing tasks and goals .

What is the difference between ${} and $() in Bash

Bash is the abbreviation of Bourne Again Shell. Bunne Again Shell is a pun name that pays tribute to Bourne Shell (invented by Steven Bourne). In terms of compatibility, Bash and sh are a perfect match. Useful features evident in the C shell ( csh ) and Korn shell ( ksh ) are also included in this shell language interpreter.

In terms of implementation, Bash aims to conform to the tools portion of the IEEE POSIX specification (IEEE Standard 1003.1) and the IEEE POSIX Shell. Therefore, as an interactive and programming tool, Bash provides functional improvements over those in sh.

Users of Linux and other GNU-based operating systems do not have to rely solely on Bash as their primary command language interpreter, since versions of shells like csh are also pre-packaged on these systems. Due to its unique shell properties such as portability, Bash is only configured to be used as the default Linux shell.

Comparing $() with ${} in Bash

In order to compare these two properties related to the Bash environment, we must reiterate $() to$(command) and ${}to ${parameter}. So we can try to define these two Bash entities.

Understanding $(command)

$(command)Involves command substitution in Bash. More specifically, the command part in$(command) is executed and its output is captured and printed on standard output. The syntax behind

牛逼啊!接私活必备的 N 个开源项目!赶快收藏
Copy after login

$(command) is token level. Consider executing the following command, which is designed to print out the current date on the terminal.

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

What is the difference between ${} and $() in Bash

在 Linux 中打印日期

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

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

了解 ${parameter}

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

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

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

考虑以下变量声明命令:

$ animal=lion
Copy after login

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

$ echo $animals
Copy after login

What is the difference between ${} and $() in Bash

在命令中声明变量

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

$ echo ${animal}s
Copy after login

What is the difference between ${} and $() in Bash

在命令中调用变量

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

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

$ animal=lion 
$ echo $animal
$ lion=rafiki
$ echo $lion
$ echo ${!animal}
Copy after login

What is the difference between ${} and $() in Bash

参数值的优先级

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

The above is the detailed content of What is the difference between ${} and $() in Bash. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:Linux中文社区
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template