gpt4 book ai didi

bash - 为什么 shell 变量在给命令加上前缀时会变成环境变量?

转载 作者:行者123 更新时间:2023-11-29 09:35:10 28 4
gpt4 key购买 nike

如果我在 bash shell 中键入以下命令:

STUFF=Blah env | grep STUFF

我很困惑为什么它会返回 STUFF=Blah 因为我希望得到一个空输出。

我感到困惑的原因是因为(据我了解)STUFF=Blah 将 STUFF 设置为 shell 变量,但是 env 命令返回所有环境变量。

但在上面的STUFF=Blah 中似乎被设置为环境变量。我的理解哪里出错了?

最佳答案

来自 bash 手册页(环境部分):

The environment for any simple command or function may be augmented temporarily by prefixing it with parameter assignments, as described above in PARAMETERS. These assignment statements affect only the environment seen by that command.

这意味着您对命令开头的 STUFF=Blah 的理解是不正确的。在命令前使用时,它会为正在运行的命令设置一个环境变量。当单独使用时(只是 STUFF=Blah 而没有任何进一步的命令),然后它设置一个本地 shell 变量。

关于bash - 为什么 shell 变量在给命令加上前缀时会变成环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33850032/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com