如何理解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}"
```
总结一下,`$()` 和 `${}` 的区别主要有两点:
- `$()` 可以执行命令,而 `${}` 不行
- `$()` 可以将命令的输出作为变量的值,而 `${}` 不行
相关文章