$()和()是两种不同的语法结构。 $()是用于命令替换的语法结构,在执行命令时,会先执行()中的命令,然后将结果替换到$()中
$(): 如果需要在子shell中执行命令并将结果传递给父进程,可以使用$()。$()创建的子shell是一个独立的进程,它会执行其中的命令,并将结果传递给父进程,但是不会影响到父进程中的变量值和环境变量。$()中的命令执行完毕后,子shell就会退出,父进程会继续执行。
(): 如果需要在子shell中修改变量值和环境变量,可以使用()。()创建的子shell也是一个独立的进程,但是它会继承父进程的变量值和环境变量。()中的命令执行完毕后,子shell就会退出,但是父进程中的变量值和环境变量可能会被修改。