初始化变量的不同方法

Pau*_*nta 9 variables syntax bash

据我所见,有两种方法可以使用进程的输出初始化变量.这两者有什么区别吗?

ex1=`echo 'hello world'`
ex2=$(echo 'hello world')
Run Code Online (Sandbox Code Playgroud)

Mic*_*jer 11

你得到同样的效果.

$()建议,因为它是更具可读性和更容易窝一个$()到另一个$().

更新:

$()语法是POSIX 1003.1标准(2004年版).但是,在一些较旧的UNIX系统(SunOS,HP-UX等)上,/bin/sh它并不理解它.

如果您需要脚本来处理此类环境,则可能需要使用反引号"`"或使用另一个shell(通常是ksh).

如果您不知道使用哪种语法 - 请使用$().不推荐使用反引号语法.