bash Frage: mit dem Rechnen klemmt es
Hallo, ich möchte mit osd_cat meine CPU Temperatur anzeigen und jenach Stress die Farbe ändern, leider bin ich auch mit man bash nicht so ganz dahinter gestiegen wie ich richtig rechen. Das skript läuft wenn man die If Statements kommentiert - und hier komme ich nicht weiter, wie werte ich die Variabeln richtig aus und wie weise ich die Farben richtig zu. Ich habe mal meinen falschen Ansatz zur Doku drin gelassen... Gruß Michael da hier scheint leider auch nicht zu funktionieren... FARBE = FARBE_OK; SLEEP=SLEEP_OK; # Variabeln auf die Bedrfnisse anpassen SLEEP_OK=30 SLEEP_ALARM=5 FARBE_OK=darkgreen FARBE_WARNUNG=yellow FARBE_ALARM=red WERT_OK=+35 WERT_WARNUNG=+40 WERT_ALARM=+50 ########################################################### FARBE = FARBE_OK; # Optimismus ist schliesslich alles SLEEP=SLEEP_OK; while true ; do # Werte aus /proc lesen eval `sensors | sed -n ' /^MB Temp:/ s/MB Temp: [[:space:]]*\([^°]*\).*/MB_TEMP=\1/p ;/^CPU Temp:/ s/CPU Temp: [[:space:]]*\([^°]*\).*/CPU_TEMP=\1/p ; ' ` if ($CPU_TEMP > WERT_WARNUNG) & ($CPU_TEMP < WERT_ALARM) ; then FARBE=FARBE_WARNUNG; fi if $CPU_TEMP => WERT_ALARM; then FARBE=FARBE_ALARM; SLEEP=SLEEP_ALARM; fi if ($CPU_TEMP <= WERT_ALARM) & ($CPU_TEMP > WERT_WARNUNG); then FARBE=FARBE_WARNUNG; SLEEP=SLEEP_OK; fi if $CPU_TEMP <= WERT_OK; then FARBE=FARBE_OK; fi echo MB Temp: $MB_TEMP CPU Temp:$CPU_TEMP; sleep $SLEEP done | osd_cat -l 1 -A right -p bottom -f -adobe-helvetica-*-*-*-*-18-*-*-*-*-*-* -c $FARBE -s 5 -S lightgray -o 55 -d 60 -- Encrypted eMail welcome! Get my OpenPGP-Key ID: 0xE9B00731 from: wwwkeys.de.pgp.net
Hallo, Am Fri, 23 Jul 2004, Michael Hoeller schrieb: [..]
# Variabeln auf die Bedrfnisse anpassen
SLEEP_OK=30 SLEEP_ALARM=5 FARBE_OK=darkgreen FARBE_WARNUNG=yellow FARBE_ALARM=red WERT_OK=+35 WERT_WARNUNG=+40 WERT_ALARM=+50
########################################################### FARBE = FARBE_OK; # Optimismus ist schliesslich alles SLEEP=SLEEP_OK;
Du weist "FARBE" ja auch die Zeichenkette "FARBE_OK" zu und nicht den Inhalt der Variablen $FARBE_OK. Ausserdem darf vor und nach dem = kein Leerzeichen stehen. Also: FARBE="$FARBE_OK" SLEEP="$SLEEP_OK"
while true ; do
# Werte aus /proc lesen eval `sensors | sed -n ' /^MB Temp:/ s/MB Temp: [[:space:]]*\([^°]*\).*/MB_TEMP=\1/p ;/^CPU Temp:/ s/CPU Temp: [[:space:]]*\([^°]*\).*/CPU_TEMP=\1/p ; ' `
if ($CPU_TEMP > WERT_WARNUNG) & ($CPU_TEMP < WERT_ALARM) ; then FARBE=FARBE_WARNUNG; fi
Hier und im folgenden gilt das gleiche wie oben, ausserdem was fuer eine Sprache soll das sein? Denn 'sh' / 'bash' ist das nicht. Ausserdem solltest du noch eine 'trap' setzen. Vor allem solltest du aber _DRINGEND_ mal eine Bash-Einfuehrung lesen, z.B. die auf http://www.selflinux.de/. -dnh -- In the middle of evil there's allways *vi* -- snarfed from "Sensor"
Hallo David, danke für Deinen Tipp. Selflinux besuche ich immer mal wieder aber manchbar sieht man den Wald vor lauter Bäumen nicht oder weis nicht wo nach suchen... Ich finde leider nicht die Stelle wo steht wie ich die Inhalte von Variabeln vergleiche. CPU_TEMP="+35" WERT_WARNUNG="+40" if ($CPU_TEMP>$WERT_WARNUNG) & ($CPU_TEMP<$WERT_ALARM) ; then FARBE="$FARBE_WARNUNG"; fi Hast Du da einen Tipp? Michael David Haller wrote: [...]
Inhalt der Variablen $FARBE_OK. Ausserdem darf vor und nach dem = kein Leerzeichen stehen.
-- Encrypted eMail welcome! Get my OpenPGP-Key ID: 0xE9B00731 from: wwwkeys.de.pgp.net
Hallo, Am Fri, 23 Jul 2004, Michael Hoeller schrieb:
Ich finde leider nicht die Stelle wo steht wie ich die Inhalte von Variabeln vergleiche. [..] Hast Du da einen Tipp?
http://www.selflinux.org/selflinux/html/shellprogrammierung03.html bzw. genauer: http://www.selflinux.org/selflinux/html/shellprogrammierung03.html#d104e2885 Du solltest aber das gesamte Kapitel lesen, da es dir offenbar generell noch an Grundlagen mangelt. -dnh -- With all the exploits for browsers out there, HTML *is* a programming language. -- Alan Shutko in asr
participants (2)
-
David Haller
-
MichaelHoeller@t-online.de