#!/bin/bash # Tahiry Razafindralambo # v1.0 du 2019.05.30 source ${LIBSH}/libeval.sh read -e -p '(evaluation) $ ' -r line # doit contenir la commande expr [ $(echo "$line" | grep -c 'expr') -ne 0 ] step $(vraifaux $?) "Votre commande contient la commande expr" true # doit contenir un + [ $(echo "$line" | grep -c "+") -ne 0 ] step $(vraifaux $?) "il y a un operateur d'addition" true # doit contenir un * [ $(echo "$line" | grep -c "*") -ne 0 ] step $(vraifaux $?) "il y a un operateur de multiplication" true # doit contenir un ) [ $(echo "$line" | grep -c ")") -ne 0 ] step $(vraifaux $?) "il y a un operateur de parenthese" true # doit contenir un / [ $(echo "$line" | grep -c "/") -ne 0 ] step $(vraifaux $?) "il y a un operateur de division" true err="$(mktemp)" fres="$(mktemp)" eval $line 1>$fres 2>$err # 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"