ich habe hier ein seltsames Problem beim Zuweisen von Arraywerten.
Und zwar geht es um diesen Code:
Code: Alles auswählen
# Alle HDDs auflisten:
#--------------------------
HDD_FOUND_RESULT=''
HDDS=''
HDD_FOUND_RESULT=$(fdisk -l | grep 'Disk /dev/sd' | awk {'print $1" "$2" "$3" "$4'})
HDDS=$(echo "$HDD_FOUND_RESULT" | sed 's/,/ /g' | awk '{print $1" "$2" "$3" "$4}')
#HDDS_ARRAY=()
declare -a HDDS_ARRAY
LINE_COUNTER=0
# Arrays-Zuweisung:
# ----------------------
echo "$HDDS" | while read HDD_LINE
do
HDDS_ARRAY[$LINE_COUNTER]="$HDD_LINE"
echo "HDDS_ARRAY[$LINE_COUNTER]: ${HDDS_ARRAY[$LINE_COUNTER]} (${#HDDS_ARRAY[$LINE_COUNTER]})"
LINE_COUNTER=$(($LINE_COUNTER+1))
done
LINE_COUNTER=0
# Arrays wieder auslesen:
# -----------------------------
while [ $LINE_COUNTER -lt 3 ]
do
echo "HDDS_ARRAY[$LINE_COUNTER]: ${HDDS_ARRAY[$LINE_COUNTER]} (${#HDDS_ARRAY[$LINE_COUNTER]})"
LINE_COUNTER=$(($LINE_COUNTER+1))
done
In der ersten while-do - Anweisung ("Arrays-Zuweisung") werden die Werte von HDD_LINE entsprechend den Array-Feldern zugewiesen. Das kann man anhand der sofortigen echo-Ausgabe sehen/überprüfen.
Jedoch in der zweiten while-do - Anweisung ("Arrays wieder auslesen") sind die Array-Felder leer.
Was mache ich da falsch, bzw. wie kommt das zustande?