106 lines
2.1 KiB
Bash
106 lines
2.1 KiB
Bash
#!/bin/bash
|
|
|
|
# Tahiry Razafindralambo
|
|
# v1.0 du 2019.05.30
|
|
|
|
source ${LIBSH}/libeval.sh
|
|
|
|
a=2
|
|
b=3
|
|
|
|
read -e -p '(evaluation) $ ' -r line
|
|
|
|
|
|
# doit contenir la commande expr
|
|
[ $(echo "$line" | grep -c 'expr') -eq 0 ]
|
|
step $(vraifaux $?) "Votre commande ne contient pas la commande expr" true
|
|
|
|
# doit contenir un ((
|
|
[ $(echo "$line" | grep -c "((") -ne 0 ]
|
|
step $(vraifaux $?) "il y a un operateur de substitution arithmetique" true
|
|
|
|
# doit contenir un i
|
|
[ $(echo "$line" | grep -c "i") -ne 0 ]
|
|
step $(vraifaux $?) "il y a la variable i" true
|
|
|
|
# doit contenir un a
|
|
[ $(echo "$line" | grep -c "a") -ne 0 ]
|
|
step $(vraifaux $?) "il y a la variable a" true
|
|
|
|
# doit contenir un b
|
|
[ $(echo "$line" | grep -c "b") -ne 0 ]
|
|
step $(vraifaux $?) "il y a la variable b" true
|
|
|
|
err="$(mktemp)"
|
|
fres="$(mktemp)"
|
|
|
|
eval $line 1>$fres 2>$err
|
|
|
|
|
|
|
|
|
|
#if [ $(echo "$line" | grep -c 'expr') -eq 1 ]
|
|
#then
|
|
# echo "Non ! Votre commande ne doit pas contenir la commande : expr"
|
|
# exit 1
|
|
#elif [ $(echo "$line" | grep -c "((") -eq 0 ]
|
|
#then
|
|
# echo "Non ! Il faut mettre un operateur de substitution arithmetique"
|
|
# exit 1
|
|
#elif [ $(echo "$line" | grep -c "a") -eq 0 ]
|
|
#then
|
|
# echo "Non ! Il faut utiliser la variable a"
|
|
# exit 1
|
|
#elif [ $(echo "$line" | grep -c "i") -eq 0 ]
|
|
#then
|
|
# echo "Non ! Il faut utiliser la variable i"
|
|
# exit 1
|
|
#elif [ $(echo "$line" | grep -c "b") -eq 0 ]
|
|
#then
|
|
# echo "Non ! Il faut utiliser la variable b"
|
|
# exit 1
|
|
#fi
|
|
|
|
|
|
|
|
echo $i > "$fres"
|
|
|
|
|
|
# le fichier d'erreur doit etre vide
|
|
[ ! -s "$err" ]
|
|
step $(vraifaux $?) "Votre calcul n'a pas produit une erreur" true
|
|
|
|
# un resultat existe
|
|
[ -s "$fres" ]
|
|
step $(vraifaux $?) "un resultat a ete produit" true
|
|
|
|
echo "Le resultat de votre calcul est: $(cat "$fres")"
|
|
status "$(cat "$fres" "$fres" "$fres")"
|
|
|
|
rm -f "$fres" "$err"
|
|
|
|
|
|
|
|
|
|
|
|
#if [ -s "$err" ]
|
|
#then
|
|
# echo "Erreur d'execution ou de syntaxe de la commande"
|
|
# exit 1
|
|
#else
|
|
# echo "Votre calcul n'a pas produit d'erreur !!!"
|
|
#fi
|
|
|
|
#if [ -s "$fres" ]
|
|
#then
|
|
# echo "Le resultat de votre calcul est: $(cat "$fres")"
|
|
# status "$(cat $fres" $fres" $fres" )"
|
|
#else
|
|
# echo "Votre calcul n'a pas produit de resultat"
|
|
# exit 1
|
|
#
|
|
#fi
|
|
|
|
#rm -f /tmp/err
|
|
#rm -f /tmp/res
|