Hallo Community,
ich würde gerne die nachfolgende Ausgabe (df) in ein assoziatives Array einlesen und wieder ausgeben.
Mit diesem Befehl werden Werte erzeugt:
df -ahT -t ext4 | awk '{print $1,$4,$7}' | egrep ^\/.*VGsys
Ausgabe an meinem Rechner (4 Datensätze a 3 Werte:
/dev/mapper/VGsys-LVroot 7,6G /
/dev/mapper/VGsys-LVvmfast 29G /mnt/vm/fast
/dev/mapper/VGsys-LVvar 3,1G /var
/dev/mapper/VGsys-LVhome 4,2G /home
Mit dem nachfolgenden Versuch des Scripts bekomme ich aber nur die Ausgabe des letzen Datensatzes.
#!/bin/bash
declare -A DISKFREE
while read -r fs ben mp;
do
DISKFREE[filesystem]=$fs
DISKFREE[benutzt]=$ben
DISKFREE[mountpunkt]=$mp
done < <(df -ahT -t ext4 | awk '{print $1,$4,$7}' | egrep ^\/.*VGsys)
echo "${DISKFREE[@]}"
Ausgabe:
/dev/mapper/VGsys-LVhome 4,2G /home
Was mache hier falsch bzw. wo habe ich den Denkfehler?