2012-03-14 45 views
12

¿Es posible tener un comando awk dentro de un script bash devolver valores a una variable bash, es decir, si mi script awk realiza algunas operaciones aritméticas, puedo almacenar las respuestas en variables para que se puede acceder en el script bash. Si es posible, cómo distinguir entre múltiples variables de retorno. Gracias.AWK: devolver valor al script de shell

Respuesta

15

No. Puede usar exit para devolver un código de error, pero en general no puede modificar el entorno de shell desde un subproceso.

También puede, por supuesto, imprimir el contenido deseado en AWK y lo puso en variables en bash utilizando read:

read a b c <<< $(echo "foo" | awk '{ print $1; print $1; print $1 }') 

Ahora $a, $b y $c son todos 'foo'. Tenga en cuenta que debe usar la sintaxis <<<$() para que la lectura funcione. Si utiliza una interconexión de cualquier tipo, también se crea un subproceso y el entorno read crea las variables que se pierden cuando la interconexión se termina de ejecutar.

+0

cómo? puedes dar un ejemplo por favor? Gracias –

+0

@ShuvoShams: agregué uno, espero que ayude. –

+0

@EduardoIvanec - la modificación de un entorno de procesos padre (variables) es tan difícil que podría ser declarado "casi imposible". –