shell printenv $PATH和printenv($PATH)的区别

brgchamk  于 2023-03-24  发布在  Shell
关注(0)|答案(1)|浏览(130)

printenv xprintenv ($x)之间的区别是什么
我在zsh上,当我尝试printenv $PATH时,我只看到PATH env变量作为输出,但当我尝试printenv ($PATH)时,我得到所有env变量作为输出。

sqxo8psd

sqxo8psd1#

你在问题标题中发布的变体的共同之处在于,它们都没有意义。
printenv [OPTION]... [Variable]...
$PATH($PATH)都不是变量名。
$PATH将展开为冒号分隔的目录列表。
($PATH)的开始括号将向zsh发出信号,表明它是globbing的一部分(请参阅zsh手册页中的文件名扩展),并且zsh希望括号后有有效的扩展标志。在这种情况下,zsh的确切React(错误消息,或只是输出一个空行)取决于PATH的值以及如何配置zsh以在globbing失败的情况下表现。
当您使用set -x打开命令跟踪时,您可以看到在您的案例中实际发生了什么。
有意义的是写

printenv PATH

因为PATH确实是一个变量。

相关问题