#!/bin/sh

# convertatemp - Script de conversion de tempratures qui permet 
#   l'utilisateur de taper une temprature en degrs Celsius, Fahrenheit,
#   ou Kelvin, et qui la transforme dans les deux autres units.

if [ $# -eq 0 ] ; then
  cat << EOF >&2 
Syntaxe: $0 <temprature>[F|C|K] 
o le suffixe:
   C    indique que la donne est en degrs Celsius (situation par dfaut)
   F    indique que la donne est en degrs Fahrenheit
   K    indique que la donne est en Kelvin
EOF
  exit 1 
fi

unit="$(echo $1|sed -e 's/[-[[:digit:]]*//g' | tr '[:lower:]' '[:upper:]' )" 
temp="$(echo $1|sed -e 's/[^-[[:digit:]]*//g')"

case ${unit:=C} in
  F ) # formule de conversion Fahrenheit -> Celsius: C = (F - 32) / 1.8
  farn="$temp"
  cels="$(echo "scale=2;($farn - 32) / 1.8" | bc)"
  kelv="$(echo "scale=2;$cels + 273.15" | bc)"
  ;;

  C ) # formule de conversion Celsius -> Fahrenheit: F = (9/5)*C+32
  cels=$temp
  kelv="$(echo "scale=2;$cels + 273.15" | bc)"
  farn="$(echo "scale=2;((9/5) * $cels) + 32" | bc)"
  ;;

  K ) # Celsius = Kelvin - 273.15, puis utiliser la formule Cels -> Fahr 
  kelv=$temp 
  cels="$(echo "scale=2; $kelv - 273.15" | bc)" 
  farn="$(echo "scale=2; ((9/5) * $cels) + 32" | bc)"
esac

echo "Fahrenheit = $farn" 
echo "Celsius    = $cels" 
echo "Kelvin     = $kelv"

exit 0
