#! /bin/bash main() { case "$1" in (--help) echo "report temperature in K, °C, °R, or °F." ;; (-C|--celsius) espeak_inside `inside_temp 'x - 273.15'` Grad Zelsius espeak_outside `outside_temp 'x - 273.15'` Grad Zelsius ;; (-F|--fahrenheit) espeak_inside `inside_temp 'x * 9/5 - 459.67'` Grad Fahrenheit espeak_outside `outside_temp 'x * 9/5 - 459.67'` Grad Fahrenheit ;; (-R|--rankine) espeak_inside `inside_temp 'x * 9/5'` Grad Renkin espeak_outside `outside_temp 'x * 9/5'` Grad Renkin ;; (-K|--kelvin|*) espeak_inside `inside_temp` Kelvin espeak_outside `outside_temp` Kelvin ;; esac } ## temp [<formula with temperature as x>] ## Echo temperature in K. If formula is given then return that result instead. inside_temp() { echo "scale=2; x=`/krebs/temper/temper` + 273.15; ${1-x}" | bc } outside_temp() { echo "scale=2; x=`dig +short txt outside.elwood.temp.citecs.de | sed 's/^"DEG \([0-9]\+\.[0-9]\+\)"$/\1/' ` + 273.15; ${1-x}" | bc } espeak_inside() { echo Die Krebs-tempera-tur beträgt $@ | to_espeak } espeak_outside() { echo Die Außen-tempera-tur beträgt $@ | to_espeak } to_espeak() { sed ' s/\(\.[0-9]\)0\+/\1/g s/\(\.[0-9]\)\([0-9]\)[0-9]*/ \1 \2 /; s/^-/minus /; s/\./ komma /; ' | tee $NOISE_linefeed } main "$@"