#! /bin/bash temper=/krebs/temper/temper main() { case "${1--K}" in (--help) echo "report temperature in K, °C, °R, or °F." exit ;; (-C|--celsius) unit='Grad Zelsius' ; formula='x - 273.15' ;; (-F|--fahrenheit) unit='Grad Fahrenheit'; formula='x * 9/5 - 459.67' ;; (-R|--rankine) unit='Grad Renkin' ; formula='x * 9/5' ;; (-K|--kelvin) unit='Kelvin' ; formula='x' ;; (*) echo 'Error 1: you are made of stupid!' exit 23 ;; esac if test -f $temper -a -x $temper; then espeak_inside `inside_temp "$formula"` $unit fi espeak_outside `outside_temp "$formula"` $unit } ## temp [] ## Echo temperature in K. If formula is given then return that result instead. inside_temp() { echo "scale=2; x=`$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 "$@"