如何取消设置很多环境变量

How unset a lot of environment variables

有什么方法可以使用一条命令取消设置不同的变量吗?

unset HTTP_PROXY
unset HTTPS_PROXY
unset FTP_PROXY
unset ALL_PROXY
unset NO_PROXY

unset 接受多个变量:

unset HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY NO_PROXY

有点晚了,但无论如何。根据您的可变模式,您可以缩短未设置:

  1. 列出您的变量。例如,根据您的范围,您可以使用 envcompgen -v.
  2. 过滤所需的变量。例如 grepsed.
  3. 将变量传递给 unset

例如你的情况可以是:

unset $(compgen -v | grep "_PROXY$")

这不完全是一个命令,但它模仿了 unset *_PROXY,正如您在评论中所要求的那样。

使用babashka:

bb -o '(->> (System/getenv)
            keys
            (filter #(str/ends-with? % "_PROXY"))
            (map #(str "unset " %)))' | 
  source /dev/stdin