【问题标题】:How unset a lot of environment variables如何取消设置很多环境变量
【发布时间】:2015-11-16 13:44:49
【问题描述】:

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

unset HTTP_PROXY
unset HTTPS_PROXY
unset FTP_PROXY
unset ALL_PROXY
unset NO_PROXY

【问题讨论】:

  • 您能否提供更多关于您正在尝试做什么以及您正在使用什么 Linux 操作系统的背景信息?
  • 是的@JosephIdziorek,我希望使用像 unset *_PROXY 这样的命令,但 unset 不接受通配符。

标签: linux unset


【解决方案1】:

unset 接受多个变量:

unset HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY NO_PROXY

【讨论】:

  • 这应该是唯一的方法。谢谢!
  • 由于某种原因,如果您要取消设置的变量存储在变量本身中,这将不起作用,例如unset "$UNSET_VARS" 不起作用..
  • 将它们全部作为单个参数传递。您需要将每个变量作为单独的参数,例如通过不引用它,或者最好首先使用数组
【解决方案2】:

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

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

例如,在您的情况下,它可以是:

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

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

【讨论】:

    【解决方案3】:

    使用babashka

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

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 2014-02-26
      • 2020-02-14
      • 1970-01-01
      • 2018-01-30
      • 2014-05-02
      • 2021-11-20
      • 2014-08-06
      相关资源
      最近更新 更多