如何理解shell中$()与${}

2023-04-09 17:37:00 shell 理解

如果没有特殊语法,`$()`和`${}`是等价的,都是取变量值的意思。

`$()` 是一种更加灵活的方式,它可以用来执行命令,而且可以将命令的输出作为变量的值。例如:

```

#!/bin/bash

# 获取当前目录下所有文件的个数

file_num=$(ls | wc -l)

echo "当前目录下共有 ${file_num} 个文件"

# 获取当前系统的名称

os_name=$(uname)

echo "当前系统为 ${os_name}"

```

`${}` 则是一种更加简单的方式,它只是取变量值,不能用来执行命令。例如:

```

#!/bin/bash

# 获取当前目录

cur_dir=${PWD}

echo "当前目录为 ${cur_dir}"

# 获取当前用户名

cur_user=${USER}

echo "当前用户为 ${cur_user}"

```

总结一下,`$()` 和 `${}` 的区别主要有两点:

- `$()` 可以执行命令,而 `${}` 不行

- `$()` 可以将命令的输出作为变量的值,而 `${}` 不行

相关文章