首页 > 解决方案 > 如何在鱼壳中擦除通用范围内的变量集?

问题描述

我使用命令将 GOROOT 设置为通用变量

set -x -U GOROOT /usr/local/go

现在导致问题,我希望它取消设置,我确实尝试使用set -e GOROOT和其他一些东西擦除,但是如果我开始一个新会话它仍然存在,那么只有那个特定的 shell 会话才会被擦除,有人可以帮我解决这个问题,我对鱼来说相对较新。

的输出set --show GOROOT是:

$GOROOT: set in global scope, exported, with 1 elements
$GOROOT[1]: |/usr/local/go/bin/go|

标签: shellfish

解决方案


set -e将擦除最低范围内的变量。

由于该变量既是通用的又是导出的,因此您还从父进程继承了一个全局副本,并且全局范围低于通用范围。

因此,您需要将其擦除两次(一次用于全局,一次用于通用),或者明确指定范围:

set -e -U GOROOT

推荐阅读