gpt4 book ai didi

environment-variables - 如何为 Fish shell 中的一个命令设置环境变量?

转载 作者:行者123 更新时间:2023-12-03 23:21:03 24 4
gpt4 key购买 nike

我有一个环境变量 GO111MODULE设置为 on在我的 ~/.config/fish/config.fish :

> echo $GO111MODULE
on

关注 https://fishshell.com/docs/2.2/faq.html#faq-single-env ,我想设置为 off对于单个命令。作为健全性检查,我尝试了 echo命令如下:
> env GO111MODULE=off echo $GO111MODULE
on

但是,我注意到这是打印 on而不是 off正如我所料。谁能解释为什么这不起作用?

最佳答案

当你输入命令

env GO111MODULE=off echo $GO111MODULE

变量 $GO111MODULEenv 之前立即被替换(在当前上下文中)曾经运行或有机会设置变量。所以 env 只看到 GO111MODULE=off echo on作为其论据。

为了看到环境变化的效果,需要在 env之后安排做envvar lookup已经设置了。所以像:
env GO111MODULE=off sh -c 'echo $GO111MODULE'

将显示更改后的变量——单个 '在它周围会阻止当前 shell 扩展 var,所以 env将得到 4 个参数: GO111MODULE=off sh -cecho $GO111MODULE .然后它会调用 sh带有两个参数,这将依次扩展变量并运行 echo带单 off arg。

关于environment-variables - 如何为 Fish shell 中的一个命令设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087177/

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