如何在 Bash 中取消设置以某个前缀开头的所有变量?

Owe*_*ley 4 linux parameters bash config environment-variables

我在虚拟机的环境变量中设置了一长串参数,例如

MYCONFIG_1=config1
MYCONFIG_2=list2
MYCONFIG_3=random3
MYCONFIG_4=somethingelse4
MYCONFIG_5=thanksforyourhelp5
Run Code Online (Sandbox Code Playgroud)

我想一次性取消所有这些设置,而不需要单独指定它们(因为它们会随着时间的推移而改变)。这可能吗?

我已经看到了单独执行此操作的方法,例如 unset MYCONFIG_1 将成功删除 MYCONFIG_1

有没有办法引用前缀MYCONFIG以删除以此开头的所有变量?例如:

unset MYCONFIG_*

我看到的大多数内容都是引用值,而不是名称。

非常感谢。

M. *_*din 8

你可以用一个命令来完成它,假设你的 shell 是bash

unset ${!MYCONFIG*}
Run Code Online (Sandbox Code Playgroud)

请注意,这将取消设置以开头的所有变量MYCONFIG(无论这些变量是否是环境变量)。