[gelöst]Werte in Array per Schleife schreiben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

[gelöst]Werte in Array per Schleife schreiben

Beitrag von Rubberduck » 18.07.2013 23:54:40

Hallo,
ich schreibe mir gerade einen Report für meinen Server.
In diesem Teil des Skripts möchte ich über eine Schleife Temperaturwerte meiner HDDs auslesen und diese dann
wieder in ein Array schreiben um sie später verwerten zu können.
Ich bekomme es hin für alle Member des Arrays HD die jeweilige Temperatur anzeigen zu lassen,
allerdings sollen sie in einem weiteren Array landen.
Meine Schleife liest die Werte natürlich immer nur einzeln in das Array und addiert die Werte nicht da rein.
Am Ende sollte das Array logisch so aussehen.
TEMP(40Grad 30Grad 30 Grad 37 Grad)
Bei mir hats natürlich nur den letzten Wert drin.

Code: Alles auswählen

# DEF VARS
TODAYS=$(date +'%Y-%m-%d')
LOGFILE="/share/10_log/Report/${TODAYS}_Report.log"
RA=("/dev/md0" "/dev/md1" "/dev/md2" "/dev/md3")
HD=("/dev/sda" "/dev/sdb" "/dev/sdc" "/dev/sdd")

for i in ${HD[@]}; do
TEMP=($(smartctl -A $i | grep "Temperature_" | awk '{print $10}'))
echo $TEMP
done
Danke für eure Hilfe.
Zuletzt geändert von Rubberduck am 20.07.2013 11:15:49, insgesamt 1-mal geändert.

linuxCowboy
Beiträge: 287
Registriert: 05.02.2013 19:47:41

Re: Werte in Array per Schleife schreiben

Beitrag von linuxCowboy » 19.07.2013 03:15:21

zum Beispiel:

Code: Alles auswählen

HD=(/dev/sd{a..d})

for ((i=0; i < ${#HD[@]}; ++i)); do
	HDT[$i]=$(smartctl -A ${HD[$i]} | awk '/^194/{print $10}')
	echo ${HDT[$i]} Grad
done
-der_linux_cowboy --- Besser werden! ... f*** w$$

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Werte in Array per Schleife schreiben

Beitrag von Rubberduck » 19.07.2013 10:30:43

Vielen Dank,

das werde ich heut abend ausprobieren.

Code: Alles auswählen

 | awk '/^194/{print $10}'

spare ich mir hiermit auch das " | grep ..." ?

Gezieltes Auslesen dieses Arrays würde dann in etwa mit ${HDT[0,1,2,3] funktionieren?

Danke

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Werte in Array per Schleife schreiben

Beitrag von Rubberduck » 20.07.2013 11:15:29

Das hat sehr gut geklappt vielen Dank!

Antworten