Si tenemos archivos de plantillas en los que hemos definido algunas variables y queremos obtener el archivo tras aplicar la sustitución de las variables, podriamos emplear el comando “eval” de la siguiente manera.
1 |
eval "echo \"$(cat /ruta/a/la/plantilla)\"" |
Por ejemplo, podriamos tener un archivo de plantilla llamado “saludo.txt”
Hola $NOMBRE, estamos muy agradecidos de que lea el Blog $BLOG
Ahora desde un script de shell podriamos leer este archivo y aplicar una sutitucion de variables de una manera similar a la siguiente:
1 2 3 |
NOMBRE="John Doe" BLOG="Ubuntulife.net" eval "echo \"$(cat ./saludo.txt)\"" |
También el comando “eval” nos puede servir por ejemplo para evaluar una expresión de cadena y proceder a su ejecución en la shell, por ejemplo:
eval “ls -l” nos saca un listado de los archivos.
Pero como eval parte de una expresion construida a base de strings, de esta forma se puede hacer bastantes cosas interesantes en la programación de bash.