Sunday, August 21, 2022

[FIXED] How do I unset all variables which start with a certain prefix in Bash?

Issue

I have a long list of parameters set in the environmental variables in a VM, e.g.

MYCONFIG_1=config1
MYCONFIG_2=list2
MYCONFIG_3=random3
MYCONFIG_4=somethingelse4
MYCONFIG_5=thanksforyourhelp5

I would like to unset all of these in one go, without specifying them each individually (as they will change over time). Is this possible?

I've seen ways to do it individualy, e.g. unset MYCONFIG_1 Would successfully remove MYCONFIG_1

Is there a way to reference the prefix MYCONFIG in order to remove all variables that start with that? E.g. something like:

unset MYCONFIG_*

Most thing I have seen are referencing the value, rather than the name.

Many thanks.


Solution

You can do it in a single command, assuming your shell is bash

unset ${!MYCONFIG*}

Note that this will unset all variables beginning with MYCONFIG (no matter if those are environment variables or not).



Answered By - M. Nejat Aydin
Answer Checked By - Pedro (PHPFixing Volunteer)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.