mooc/www/sys/fs/usr/script/evalQ341

39 lines
925 B
Bash

#!/bin/bash
# Tahiry Razafindralambo
# v1.1 du 2019.06.04
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
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"
exit 0