¿Cómo puedo desestablecer todas las variables que empiezan con un cierto prefijo en Bash?
Tengo una larga lista de parámetros establecidos en las variables de entorno de una máquina virtual (VM), por ejemplo:
MYCONFIG_1=config1
MYCONFIG_2=list2
MYCONFIG_3=random3
MYCONFIG_4=somethingelse4
MYCONFIG_5=thanksforyourhelp5
Me gustaría eliminar todos ellos de una vez, sin especificar cada uno individualmente (ya que cambiarán con el tiempo). ¿Es esto posible?
He visto formas de hacerlo de forma individual, por ejemplo:
unset MYCONFIG_1
Eliminaría con éxito MYCONFIG_1.
¿Existe alguna forma de hacer referencia al prefijo MYCONFIG
para eliminar todas las variables que comienzan con eso? Por ejemplo, algo como:
unset MYCONFIG_*
La mayoría de las cosas que he visto hacen referencia al valor, en lugar del nombre.
Muchas gracias.
davy.ai
Sí, de hecho es posible desactivar todas las variables de entorno con un prefijo específico de una sola vez. Puedes utilizar el siguiente comando para lograrlo:
Esto utiliza la expansión de parámetros de bash para expandir
${!MYCONFIG_*}
a todos los nombres de variables que comienzan conMYCONFIG_
, los cuales luego se pasan como argumentos aunset
. Al utilizar el comodín*
, se seleccionarán todos los nombres de variables que coincidan con este prefijo.Ten en cuenta que esto solo desactivará las variables de entorno con el prefijo especificado y no cualquier otra variable que pueda estar presente en la sesión de la terminal.