convertir variables en bash

Horst von Brand vonbrand en inf.utfsm.cl
Mie Ago 10 21:44:08 CLT 2005


augusto ingunza <aingunza en yahoo.com> wrote:
> Estoy intentando hacer un programa

Script en bash(1), supongo.

>                                    y tengo una varible
> con un resultado que aparentemente es numerico pero
> parece que me lo esta reconociendo como string

Los shell no tienen variables "numero" y "string".

> lineas=`wc -l prubackup.ascii | awk -F' ' '{ print $1 }'`

Para que tanta macana?!

  lineas=$(wc -l prubackup.ascii) 

> Con esto solo quiero obtener el numero de lineas que
> tiene este archivo y luego con
> 
> contador=1
> while [ $contador -lt $lineas ]; do

No te sirve algo como:

   for contador in {1..$lineas}; do
     # Aca pones lo entretenido
   done

> hago una compracion pero me parece que si bien el
> contenido de la varible lineas es una numero esta como
> tipo caracter y quisiera convertirlo a numero.

Claro que es un string. Y test(1) (es lo mismo que [(1) ;-) con -lt
considera _ambos_ operandos como enteros.

Aunque me late que la solucion va mas bien por algo del corte:

   while read linea; do
     # Chuchoquear a gusto con $linea
   done < prubackup.ascii

O incluso usar un lenguaje mas expresivo, como Perl, Python, o Ruby. Hasta
awk.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux