$()和``都是将命令的输出作为变量存储在bash中
比如date命令的输出,可以这样输出,也可以通过var=$(date) 的方式存在变量里
那么这2中方法有什么区别的?
他们的行为相同,反引号形式是传统的命令替换方法,但要注意在嵌入命令的替换是注意转义。区别是$()比``更易于嵌套,可读性更好。
使用反引号的时候需要注意:
嵌套在反引号里的命令会在当前shell环境中执行,所以他可以修改环境变量,当前目录等
和$(...)这种方式相比,反引号是bash的传统格式,但是$(...)更加清晰,更容易阅读和调试。