为什么 $BASH_VERSION 可以根据我如何回显它而起作用,但又不起作用?

为什么 $BASH_VERSION 可以根据我如何回显它而起作用,但又不起作用?

我在 sh 终端。

当我这样做的时候

echo $BASH_VERSION

我已将版本打印出来。

但是当我这样做时

echo "`$SHELL -c 'echo $BASH_VERSION'`"

我什么也没得到。

我不是 shell 方面的专家,但似乎最后一个命令确实调用了该命令。例如

echo "`$SHELL -c 'ls'`"

实际上只是调用ls,所以我期望第二个只是打印$BASH_VERSION

知道为什么这不起作用吗?

(此外,我发现 $SHELL 没有列出printenv。我以为列出了环境变量。为什么没有呢?

相关内容