Hallo David, leider habe ich immer noch ein kleines Problem... Michael@tamboti:~/tmp> sh osd_sensors osd_sensors: line 59: /tmp/FIFO14234: Datei oder Verzeichnis nicht gefunden bye... michael@tamboti:~/tmp> Ich habe nicht herausbekommen warum osd_cat da meckert denn die Werte im FIFO sind richtig und lassen sich mit echo ausgeben. Das Skript habe ich angehangen. David Haller wrote:
Ich kenne osd_cat nicht und weiss nicht wie es arbeitet, aber eine Moeglichkeit dein Problem zu umgehen ist die Verwendund eines FIFOs (bzw. einer "named pipe"):
$ { echo "foo"; echo "bar" >/tmp/FIFO; } | xargs echo "err='-c $(
Der Teil in den {} simuliert dabei die while-Schleife, der Teil danach deinen Aufruf von 'osd_cat'.
#!/bin/bash # Variabeln auf die Bedrfnisse anpassen SLEEP_OK=30 SLEEP_ALARM=5 FARBE_OK=darkgreen FARBE_WARNUNG=yellow FARBE_ALARM=red WERT_OK=+30 WERT_WARNUNG=+40 WERT_ALARM=+50 ################################################################################## FARBE="$FARBE_OK" # Optimismus ist schliesslich alles SLEEP="$SLEEP_OK" TMPDIR=/tmp/FIFO$$ # temp directory # trap erros trap "echo ; echo \"bye...\" ; rm -rf ${TMPDIR}; exit 1" 1 2 3 4 5 7 9 10 12 15 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" -gt "$WERT_WARNUNG" -a \ "$CPU_TEMP" -lt "$WERT_ALARM" ] ; then FARBE="$FARBE_WARNUNG"; fi if [ "$CPU_TEMP" -ge "$WERT_ALARM" ]; then FARBE="$FARBE_ALARM"; SLEEP="$SLEEP_ALARM"; fi if [ "$CPU_TEMP" -le "$WERT_OK" ] ; then FARBE="$FARBE_OK"; fi echo MB Temp: $MB_TEMP CPU Temp:$CPU_TEMP; echo "$FARBE" > ${TMPDIR} sleep $SLEEP done |osd_cat -l 1 -A left -p bottom -f -adobe-helvetica-*-*-*-*-18-*-*-*-*-*-* -c "$(<${TMPDIR})" -s 5 -S lightgray -o 65 -d 60 -- Encrypted eMail welcome! Get my OpenPGP-Key ID: 0xE9B00731 from: wwwkeys.de.pgp.net