thecode
von tomi89- SNIPPET_TEXT:
-
- #!/bin/sh
- # TODO: txt formatierung
- PRODUCTS="aaa bbb ccc"
- ## kurs zu bestimmter tageszeit oder von vor x zurückliegenden Min abstand holen
- kursholen () {
- if [ $(echo "$1" | grep -F ":") ]; then
- THEHOURS=$(echo "$1" | cut -d ":" -f 1 | sed 's/^0//g') # sed python error workaround
- THEMINUTES=$(echo "$1" | cut -d ":" -f 2 | sed 's/^0//g') # sed python error workaround
- ZEITWERT=$(echo $(( ($THEHOURS * 60) + $THEMINUTES )))
- else
- ZEITWERT=$(echo $(( $THEMINUTES - $1 )))
- fi
- DONE=""
- for i in $(tac /tmp/kursmon/$DATE/$WERT.txt | grep " " | cut -d " " -f 1); do if [ -z $DONE ]; then test $i -le $ZEITWERT && MATCH="$i" && DONE=1 ; fi ; done
- KURS=""
- KURS=$(grep "^$MATCH " /tmp/kursmon/$DATE/$WERT.txt | grep " " | cut -d " " -f 2)
- }
- ## perf berechnung je zeitfenster
- perfcalc () {
- if [ "$(echo "scale=4; $1 > $2" | bc -l)" -eq 1 ]; then
- PERF="$(python -c "print(($1 - $2) / ($2 / 100.0))")%"
- else
- PERF="$(python -c "print(($2 - $1) / ($1 / 100.0))")%"
- fi
- }
- while
- true
- do
- TIMEMINUTES=$(echo $(( ($HOURS * 60) + $MINUTES ))) # tageszeit in minuten
- ## perf berechnung
- echo -n "" > /tmp/perfmon/$DATE/perfmon.txt
- for titel in $PRODUCTS; do
- WERT="$(echo "$titel" | sed 's/\///g;s/\&//g')"
- if [ -f /tmp/kursmon/$DATE/$WERT.txt ]; then
- GEBUEHRENSREAD=$(grep -v "^#\|^$" ../products.txt | grep -F " $titel " | cut -d " " -f 1)
- MARGIN=$(grep -v "^#\|^$" ../products.txt | grep -F " $titel " | cut -d " " -f 2)
- KURS_NOW=$(tac /tmp/kursmon/$DATE/$WERT.txt | grep " " | head -n 1 | cut -d " " -f 2)
- kursholen 09:07 ; KURS_9="$KURS"
- kursholen 10:00 ; KURS_10="$KURS"
- kursholen 14:00 ; KURS_14="$KURS"
- kursholen 15:37 ; KURS_15HALB="$KURS"
- kursholen 16:30 ; KURS_16HALB="$KURS"
- kursholen 17:00 ; KURS_17="$KURS"
- kursholen 1 ; KURS_BEFORE1="$KURS"
- kursholen 2 ; KURS_BEFORE2="$KURS"
- kursholen 3 ; KURS_BEFORE3="$KURS"
- kursholen 4 ; KURS_BEFORE4="$KURS"
- kursholen 5 ; KURS_BEFORE5="$KURS"
- kursholen 10 ; KURS_BEFORE10="$KURS"
- kursholen 15 ; KURS_BEFORE15="$KURS"
- kursholen 30 ; KURS_BEFORE30="$KURS"
- kursholen 45 ; KURS_BEFORE45="$KURS"
- kursholen 60 ; KURS_BEFORE60="$KURS"
- kursholen 90 ; KURS_BEFORE90="$KURS"
- kursholen 120 ; KURS_BEFORE120="$KURS"
- perfcalc $KURS_9 $KURS_10 ; PERF_9_10="$PERF"
- perfcalc $KURS_10 $KURS_14 ; PERF_10_14="$PERF"
- perfcalc $KURS_15HALB $KURS_16HALB ; PERF_15HALB_16HALB="$PERF"
- perfcalc $KURS_16HALB $KURS_17 ; PERF_16HALB_17="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE1 ; PERF_SINCE1MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE2 ; PERF_SINCE2MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE3 ; PERF_SINCE3MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE4 ; PERF_SINCE4MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE5 ; PERF_SINCE5MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE10 ; PERF_SINCE10MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE15 ; PERF_SINCE15MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE30 ; PERF_SINCE30MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE45 ; PERF_SINCE45MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE60 ; PERF_SINCE60MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE90 ; PERF_SINCE90MIN="$PERF"
- perfcalc $KURS_NOW $KURS_BEFORE120 ; PERF_SINCE120MIN="$PERF"
- perfcalc $KURS_NOW $KURS_10 ; PERF_SINCE10="$PERF"
- perfcalc $KURS_NOW $KURS_14 ; PERF_SINCE14="$PERF"
- perfcalc $KURS_NOW $KURS_16HALB ; PERF_SINCE16HALB="$PERF"
- perfcalc $KURS_NOW $KURS_17 ; PERF_SINCE17="$PERF"
- echo "$titel ($GEBUEHRENSREAD $MARGIN) PERF SINCE MIN: 1-5M $PERF_SINCE1MIN $PERF_SINCE2MIN $PERF_SINCE3MIN $PERF_SINCE4MIN $PERF_SINCE5MIN 10M $PERF_SINCE10MIN 15M $PERF_SINCE15MIN 30M $PERF_SINCE30MIN 45M $PERF_SINCE45MIN 60M $PERF_SINCE60MIN 90M $PERF_SINCE90MIN 120M $PERF_SINCE120MIN
- PERF BETWEEN: 9:00-10 $PERF_9_10 10-14 $PERF_10_14 15:30-16:30 $PERF_15HALB_16HALB 16:30-17 $PERF_16HALB_17 PERF SINCE: 10 $PERF_SINCE10 14 $PERF_SINCE14 16:30 $PERF_SINCE16HALB 17 $PERF_SINCE17
- " >> /tmp/perfmon/$DATE/perfmon.txt
- fi
- done
- cp /tmp/perfmon/$DATE/perfmon.txt /tmp/perfmon/$DATE/perf.txt # damit formatierungsprozess bereits abgeschlossen bei nachfolgendem cat
- sleep 25
- done &
- while
- true
- do
- clear
- ## formatierte txt ausgeben
- cat /tmp/perfmon/$DATE/perf.txt
- ## abschliessend letzten 10 ereignisse aus log.txt anzeigen und bei neuem eintrag ton und alert ausgeben
- sleep 10
- done
- exit 0
Quellcode
Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN