es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , , , ,

Answer

  1. Avatar for 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:

    unset ${!MYCONFIG_*}
    

    Esto utiliza la expansión de parámetros de bash para expandir ${!MYCONFIG_*} a todos los nombres de variables que comienzan con MYCONFIG_, los cuales luego se pasan como argumentos a unset. 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.

Comments are closed.