Tengo un problema en un script que no se resolver. Se trata de lo siguiente:
a) I=0; lspci | grep Ethernet | cut -d ":" -f3 | while read LINEA; do
b) CONTROLADOR_DE_RED[$I]=`echo $LINEA`
c) echo -e "Controlador de red: {CONTROLADOR_DE_RED[$I]}\n"
d) echo -e "Linea leída: $LINEA\n\n\n"
e) ((I++))
f) done
g) I=0; echo -e "$I) ${CONTROLADOR_DE_RED[$I]} \n"
¿Por qué en la línea g) el valor de CONTROLADOR_DE_RED[0] me aparece en blanco si en la línea c) lo muestra correctamente tanto en el array como en la línea leída?
El mismo problema aquí:
Código
for (( M=0; M<$UNIDADES; M++ )); do UNIDAD_ALMACENAMIENTO[$M,0]=${UNIDAD[$M]} echo "$M,0: ${UNIDAD_ALMACENAMIENTO[$M,0]}" # Leerá las cuatro primeras líneas mostradas por el comando N=1 parted -s /dev/${UNIDAD[$M]} print free|head -n4|cut -d":" -f2|sed 's/^[ \t]*//;s/[ \t]*$//'|while read LINEA; do UNIDAD_ALMACENAMIENTO[$M,$N]=${LINEA} echo "$M,$N: ${UNIDAD_ALMACENAMIENTO[$M,$N]}" ((N++)) done done echo "========================================================================" echo "Unidad: ${UNIDAD_ALMACENAMIENTO[0,0]}" echo "Modelo: ${UNIDAD_ALMACENAMIENTO[0,1]}" echo "Capacidad: ${UNIDAD_ALMACENAMIENTO[0,2]}" echo "Tamaño del sector: ${UNIDAD_ALMACENAMIENTO[0,3]}" echo "Tipo de partición: ${UNIDAD_ALMACENAMIENTO[0,4]}" echo "========================================================================" echo "Unidad: ${UNIDAD_ALMACENAMIENTO[1,0]}" echo "Modelo: ${UNIDAD_ALMACENAMIENTO[1,1]}" echo "Capacidad: ${UNIDAD_ALMACENAMIENTO[1,2]}" echo "Tamaño del sector: ${UNIDAD_ALMACENAMIENTO[1,3]}" echo "Tipo de partición: ${UNIDAD_ALMACENAMIENTO[1,4]}"
He probado a cambiar por:
done < `parted -s /dev/${UNIDAD[$M]} print free|head -n4|cut -d":" -f2|sed 's/^[ \t]*//;s/[ \t]*$//'`
y tampoco consigo asignar valores a los elementos de la matriz.
Para los arrays, he utilizado declare -a y declare -A.
El resultado obtenido es mientras se ejecutan los bucles:
0,0: sda
0,1: ATA TOSHIBA MK1655GS (scsi)
0,2: 160GB
0,3: 512B/512B
0,4: msdos
1,0: sdb
1,1: Generic Flash Disk (scsi)
1,2: 1845MB
1,3: 512B/512B
1,4: loop
========================================================================
Al terminar los dos bucles:
Unidad: sda
Modelo:
Capacidad:
Tamaño del sector:
Tipo de partición:
========================================================================
Unidad: sdb
Modelo:
Capacidad:
Tamaño del sector:
Tipo de partición:
Dentro del bucle los valores son correctos pero al terminar el bucle, todo vuelve a cero, excepto lo asignado antes del segundo bucle.
¿Alguien puede ayudarme por favor? Muchísmas gracias a todos por adelantado.