Reemplazo de variables ambientales utilizando el comando Envsubst Linux

Reemplazo de variables ambientales utilizando el comando Envsubst Linux

Almacenar detalles confidenciales en un archivo como texto sin formato es arriesgado. En algunos casos en los que necesita contener los valores de las variables, su mejor opción es reemplazarlas desde la consola. Si está escribiendo un script de automatización u otros archivos como YAML, el envsubst reemplaza fácilmente las variables. Veremos cómo puedes hacerlo en este artículo.

¿Cómo funciona el envsubst??

El envsubst hace el trabajo de reemplazar las variables. Busca patrones de la entrada, y cuando encuentra una coincidencia, la reemplaza con el valor variable. Si el patrón no produce coincidencia correspondiente, la reemplaza con una cadena vacía.

Su sintaxis básica es la siguiente:

1
$ envsubst [opción] [formato de shell]

Reemplazo de variables en un archivo

Suponga que tiene un archivo de texto simple con variables que solo deben establecerse al usar el archivo, el envsubst puede manejar perfectamente el trabajo.

Creemos un muestra de muestra.archivo txt y crear dos variables para el Nombre de usuario y contraseña.

Para usar envsubst, primero necesitamos exportar los valores para las dos variables:

1
2
3
$ Export UserName = "Kaila"
$ exportar contraseña = "pasword"

Con las variables exportadas, ahora puede invocar el comando Envsubst:

1
$ envsubst < sample.txt

Nuestra salida para este caso será:

Ha utilizado con éxito Envsubst para reemplazar los valores variables en un archivo.

Tambien tu puedes desacio las variables escribiendo desacio, seguido del nombre de la variable. Si ejecuta el envsubst nuevamente, mostrará el archivo sin los valores establecidos previamente. Eche un vistazo a lo siguiente:

Si no desea que el envsubst muestre la salida en el espacio de trabajo, puede combinarla con el menos dominio.

1
$ envsubst < sample.txt | less

Piping Envsubst Sustitution a otro archivo

También es posible que deba encender la salida en otro archivo en lugar de mostrarlo en la consola. Por ejemplo, creemos un archivo de configuración que puede publicar en su sitio o ejecutar con un bot. En este caso, no puede agregar detalles confidenciales como texto sin formato. La solución es usar envsubst.

Crear un muestreador.archivo conf y agregue el texto como en la siguiente imagen:

User_password =

1
$ nano sampleconfig.confusión

Nuestro archivo se ve así:

Exportemos nuestras variables.

Ahora, para usar Envsubst mientras se realiza la salida a un nuevo archivo, el comando es el siguiente:

1
$ envsubst < sampleconfig.conf >salida1.TXT

Si atacamos el contenido del salida1.TXT, Vemos que el comando funciona para reemplazar las variables.

Especificando las variables para reemplazar

Hasta ahora, hemos visto cómo reemplazar las variables que contienen un signo de dólar. Es posible establecer dos o más variables y exportarlas. Pero solo podemos reemplazar los específicos.

Creemos un archivo similar al que teníamos antes y le agregamos dos variables más.

Proceder a exportar las variables.

Para especificar qué variable reemplazar, configure su nombre y asegúrese de usar los apóstrofes únicos para evitar su sustitución antes de que se realice la llamada.

En nuestro caso, reemplazamos el Usuario1.

1
$ envsubst '$ user1' < sampleconfig.conf

También puede reemplazar dos variables como se muestra en lo siguiente:

1
$ envsubst '$ user1, $ username' < sampleconfig.conf

Solo necesita separar las variables con una coma y usar un solo apóstrofe para encerrar las dos variables, como se muestra en el siguiente ejemplo:

Conclusión

El comando Envsubst Linux es una gran herramienta para reemplazar sus variables en los archivos. Es útil cuando necesita enmascarar información confidencial, como contraseñas y solo reemplazarlas cuando sea necesario. Lo bueno con envsubst es que puede usarlo con diferentes tipos de archivos, canalizar su salida a otro archivo o incluso usarlo como entrada para otro comando.

Hemos cubierto el comando Envsubst en esta guía, y los ejemplos lo ayudan a visualizar y comprender su uso con facilidad.