El comando eval permite la realización de una doble evaluación en la línea de comandos. Recibe como argumento un conjunto de expresiones en el que efectúa las operaciones siguientes:
- Primera etapa: los caracteres especiales contenidos en las expresiones se tratan. El resultado del tratamiento genera una o varias expresiones: eval otra_exp1 otra_exp2 … otra_expn. La expresión otra_exp1 representará el comando Unix que se debe ejecutar en la segunda etapa.
- Segunda etapa: eval va a ejecutar el comando otra_exp1 otra_exp2 … otra_expn. Sin embargo, previamente, esta línea se va a someter a una nueva evaluación. Los caracteres especiales se tratan y después el comando se lanza.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash nombre=gonzalo apellido=reiser direccion=teatinos pais=chile var=nombre eval echo \$$var var=apellido eval echo \$$var var=direccion eval echo \$$var var=pais eval echo \$$var |