You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在zsh中清除所有指定前缀的变量?

在Zsh中批量删除以AWS_开头的环境变量

Bash中可以用unset "${!AWS_@}"批量清除所有以AWS_开头的环境变量,但这个写法在Zsh中会因为参数展开机制差异报错。以下是Zsh中简洁的单行实现:

  • 最优单行写法:
    unset ${(M)parameters:#AWS_*}
    

写法说明:

  • ${(M)parameters:#AWS_*}是Zsh专属的参数展开语法:

    • parameters是内置数组,包含当前所有Shell参数(含环境变量)
    • (M)修饰符表示仅保留匹配后续模式的元素
    • #AWS_*为匹配规则,筛选出所有以AWS_开头的参数
  • 另一种兼容思路(适配习惯Bash写法的用户):

    unset $(compgen -v AWS_)
    

    注:compgen -v会列出所有指定前缀开头的变量,再通过命令替换传递给unset执行批量删除。

内容的提问来源于stack exchange,提问作者Chris Dobbyn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:40:19