[sh (Another)] Problemos con arreglos XD

Jelou, jelou, hola! [jaja]

Enas, estaba haciendo un par de scriptillos practicando y tal el uso de arrays, pero he llegado a un punto en que sólo recibo errores :-S


El código es bien sencillo, declaro unos arrays, los relleno grepeando un archivo y después empieza a hacer cálculos simples con ellos..

El código se resume así:

busca_array_id=`ids_objetos`


for i in $(seq 1 1 20)
do
      total_disp[$i]=0
      total_act[$i]=0
done   
   
for Id in $busca_array_id
do
   
        documento=`echo fichero_salida`
   disponibles[$Id]=`cat $documento | .... | grep ^[0-9]`
   actuales[$Id]=`cat $documento | .... | grep ^[0-9]`
   coste[$Id]=`cat $documento  | ...| grep ^[0-9]`      
   
   
done

#Ya tenemos los arrays, ahora calculamos el total.... de uno de ellos..

indice=1
for i in ${disponibles[$Id]}
   do
      aux=`echo "${total_disp[$indice]}"`
      total_disp[$indice]=`echo $aux  \+ $i | bc -l`
      indice=`echo $indice \+ 1 | bc -l`
   done




El código funciona perfectamente en mi entorno de prueba (un cygwin antiguo, pero falla estrepitosamente en los entornos donde correrá: cygwin nuevo y mi debian)

El error: en la suma de total_disp =>
(standard in) 1: Ilegal character: ^M

Es como si se colara dentro del array el Ctrl-M.... pero si listo el array está correcto....

Por supuesto he intentando mil trillones de pruebas... por ejemplo cambiando el bucle a:



for i in ${disponibles[$Id]}
do
[ -z $i ] || expr $i \+ 10
done




Resultando el siguiente error:

expr: non-numeric argument
expr: non-numeric argument
.....


Eso sí, si listo el array con :

for i in ${disponibles[$Id]};do; echo $i;done

Se muestran bien los valores de las variables...

Otro ejemplo:

for i in ${disponibles[$Id]}
do
   typeset -i i
done


Donde me escupe:

")syntax error: invalid arithmetic operator (error token is"




Así ke no se como tirar... ah otra cosa, si hago un:

echo ${disponibles[$Id]} no hace bien el echo... no lista bien los datos que contiene el array... de una cadena compuesta por:

2150
1075
65
49
40
32
28
18
0
0
0
0
0
0
0
0
0
0
0
0


Saca por pantalla 0055...


Y no sé que cosas más, he probado con typeset -i en multitud de lados... cambiado el algoritmo de muy diversas maneras y nada... DAMM IT cawento
0 respuestas