case $# in 0) echo "usage : facto n"; exit ;; 1) expr $1 + 0 2>/dev/null>/dev/null if [ $? -ge 2 ] then echo "l'argument n'est pas un entier" exit fi if [ $1 -lt 0 ] then echo "argument negatif $1" exit fi i=1 j=1 while ( [ $i -le $1 ] ) do j=`expr $j \* $i` i=`expr $i + 1` done echo "$1!=$j";; *) echo "trop d'arguments"; exit;; esac