NoPaste

thecode

von tomi89

Dein Code:
  1. #!/bin/sh
  2. # TODO: txt formatierung
  3.  
  4. PRODUCTS="aaa bbb ccc"
  5.  
  6. ## kurs zu bestimmter tageszeit oder von vor x zurückliegenden Min abstand holen
  7. kursholen () {
  8. if [ $(echo "$1" | grep -F ":") ]; then
  9.   THEHOURS=$(echo "$1" | cut -d ":" -f 1 | sed 's/^0//g') # sed python error workaround
  10.  THEMINUTES=$(echo "$1" | cut -d ":" -f 2 | sed 's/^0//g') # sed python error workaround
  11.  ZEITWERT=$(echo $(( ($THEHOURS * 60) + $THEMINUTES )))
  12. else
  13.   ZEITWERT=$(echo $(( $THEMINUTES - $1 )))
  14. fi
  15.   DONE=""
  16.   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
  17.   KURS=""
  18.   KURS=$(grep "^$MATCH " /tmp/kursmon/$DATE/$WERT.txt | grep " " | cut -d " " -f 2)
  19. }
  20.  
  21. ## perf berechnung je zeitfenster
  22. perfcalc () {
  23.   if [ "$(echo "scale=4; $1 > $2" | bc -l)" -eq 1 ]; then
  24.     PERF="$(python -c "print(($1 - $2) / ($2 / 100.0))")%"
  25.   else
  26.     PERF="$(python -c "print(($2 - $1) / ($1 / 100.0))")%"
  27.   fi
  28. }
  29.  
  30.  
  31. touch /tmp/log.txt /tmp/perfmon/$DATE/perfmon.txt /tmp/perfmon/$DATE/perf.txt /tmp/perfmon/$DATE/sentimentmon.txt # kein error
  32.  
  33.  
  34. while
  35.   true
  36. do
  37.  
  38. DATE=$(date +%d.%m.%y)
  39. HOURS=$(date +%H | sed 's/^0//g') # sed python error workaround
  40. MINUTES=$(date +%M | sed 's/^0//g') # sed python error workaround
  41. TIMEMINUTES=$(echo $(( ($HOURS * 60) + $MINUTES ))) # tageszeit in minuten
  42.  
  43. mkdir -p /tmp/perfmon/$DATE/
  44.  
  45. ## perf berechnung
  46. echo -n "" > /tmp/perfmon/$DATE/perfmon.txt
  47. for titel in $PRODUCTS; do
  48.   WERT="$(echo "$titel" | sed 's/\///g;s/\&//g')"
  49.   if [ -f /tmp/kursmon/$DATE/$WERT.txt ]; then
  50.     GEBUEHRENSREAD=$(grep -v "^#\|^$" ../products.txt | grep -F " $titel " | cut -d " " -f 1)
  51.     MARGIN=$(grep -v "^#\|^$" ../products.txt | grep -F " $titel " | cut -d " " -f 2)
  52.     KURS_NOW=$(tac /tmp/kursmon/$DATE/$WERT.txt | grep " " | head -n 1 | cut -d " " -f 2)
  53.     kursholen 09:07 ; KURS_9="$KURS"
  54.     kursholen 10:00 ; KURS_10="$KURS"
  55.     kursholen 14:00 ; KURS_14="$KURS"
  56.     kursholen 15:37 ; KURS_15HALB="$KURS"
  57.     kursholen 16:30 ; KURS_16HALB="$KURS"
  58.     kursholen 17:00 ; KURS_17="$KURS"
  59.     kursholen 1 ; KURS_BEFORE1="$KURS"
  60.     kursholen 2 ; KURS_BEFORE2="$KURS"
  61.     kursholen 3 ; KURS_BEFORE3="$KURS"
  62.     kursholen 4 ; KURS_BEFORE4="$KURS"
  63.     kursholen 5 ; KURS_BEFORE5="$KURS"
  64.     kursholen 10 ; KURS_BEFORE10="$KURS"
  65.     kursholen 15 ; KURS_BEFORE15="$KURS"
  66.     kursholen 30 ; KURS_BEFORE30="$KURS"
  67.     kursholen 45 ; KURS_BEFORE45="$KURS"
  68.     kursholen 60 ; KURS_BEFORE60="$KURS"
  69.     kursholen 90 ; KURS_BEFORE90="$KURS"
  70.     kursholen 120 ; KURS_BEFORE120="$KURS"
  71.     perfcalc $KURS_9 $KURS_10 ; PERF_9_10="$PERF"
  72.     perfcalc $KURS_10 $KURS_14 ; PERF_10_14="$PERF"
  73.     perfcalc $KURS_15HALB $KURS_16HALB ; PERF_15HALB_16HALB="$PERF"
  74.     perfcalc $KURS_16HALB $KURS_17 ; PERF_16HALB_17="$PERF"
  75.     perfcalc $KURS_NOW $KURS_BEFORE1 ; PERF_SINCE1MIN="$PERF"
  76.     perfcalc $KURS_NOW $KURS_BEFORE2 ; PERF_SINCE2MIN="$PERF"
  77.     perfcalc $KURS_NOW $KURS_BEFORE3 ; PERF_SINCE3MIN="$PERF"
  78.     perfcalc $KURS_NOW $KURS_BEFORE4 ; PERF_SINCE4MIN="$PERF"
  79.     perfcalc $KURS_NOW $KURS_BEFORE5 ; PERF_SINCE5MIN="$PERF"
  80.     perfcalc $KURS_NOW $KURS_BEFORE10 ; PERF_SINCE10MIN="$PERF"
  81.     perfcalc $KURS_NOW $KURS_BEFORE15 ; PERF_SINCE15MIN="$PERF"
  82.     perfcalc $KURS_NOW $KURS_BEFORE30 ; PERF_SINCE30MIN="$PERF"
  83.     perfcalc $KURS_NOW $KURS_BEFORE45 ; PERF_SINCE45MIN="$PERF"
  84.     perfcalc $KURS_NOW $KURS_BEFORE60 ; PERF_SINCE60MIN="$PERF"
  85.     perfcalc $KURS_NOW $KURS_BEFORE90 ; PERF_SINCE90MIN="$PERF"
  86.     perfcalc $KURS_NOW $KURS_BEFORE120 ; PERF_SINCE120MIN="$PERF"
  87.     perfcalc $KURS_NOW $KURS_10 ; PERF_SINCE10="$PERF"
  88.     perfcalc $KURS_NOW $KURS_14 ; PERF_SINCE14="$PERF"
  89.     perfcalc $KURS_NOW $KURS_16HALB ; PERF_SINCE16HALB="$PERF"
  90.     perfcalc $KURS_NOW $KURS_17 ; PERF_SINCE17="$PERF"
  91.     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
  92. 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
  93. " >> /tmp/perfmon/$DATE/perfmon.txt
  94.   fi
  95. done
  96. cp /tmp/perfmon/$DATE/perfmon.txt /tmp/perfmon/$DATE/perf.txt # damit formatierungsprozess bereits abgeschlossen bei nachfolgendem cat
  97.  
  98.   sleep 25
  99. done &
  100.  
  101.  
  102. while
  103.   true
  104. do
  105.  
  106. clear
  107.  
  108. ## formatierte txt ausgeben
  109. cat /tmp/perfmon/$DATE/perf.txt
  110.  
  111. ## abschliessend letzten 10 ereignisse aus log.txt anzeigen und bei neuem eintrag ton und alert ausgeben
  112. tac /tmp/log.txt | head -n 10
  113.  
  114.   sleep 10
  115. done
  116.  

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. Alternativ kannst du den gesamten Eintrag auch als Datei herunterladen.