64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
|  
 | |
| # Tahiry Razafindralambo
 | |
| # v1.0 du 2019.05.30
 | |
| # Session 3
 | |
| 
 | |
| source ${LIBSH}/libeval.sh
 | |
| #--------------
 | |
| challenge=C34Q2
 | |
| #--------------
 | |
| # Debut
 | |
| banniere $challenge
 | |
| 
 | |
| readline
 | |
| 
 | |
| # 1 doit contenir la commande expr
 | |
| [ $(echo "$line" | grep -c 'expr') -ne 0 ]
 | |
| step $(vraifaux $?)  "Votre commande contient la commande expr" true
 | |
| 
 | |
| # 2 doit contenir un +
 | |
| [ $(echo "$line" | grep -c "+") -ne 0 ]
 | |
| step $(vraifaux $?)  "Il y a un operateur d'addition" 
 | |
| 
 | |
| # 3 doit contenir un *
 | |
| [ $(echo "$line" | grep -c "*") -ne 0 ]
 | |
| step $(vraifaux $?)  "Il y a un operateur de multiplication" 
 | |
| 
 | |
| # 4 doit contenir un )
 | |
| [ $(echo "$line" | grep -c ")") -ne 0 ]
 | |
| step $(vraifaux $?)  "Il y a un operateur de parenthese" 
 | |
| 
 | |
| # 5 doit contenir un /
 | |
| [ $(echo "$line" | grep -c "/") -ne 0 ]
 | |
| step $(vraifaux $?)  "Il y a un operateur de division" 
 | |
| 
 | |
| 
 | |
| err="$(mktemp)"
 | |
| fres="$(mktemp)"
 | |
| eval $line 1>$fres 2>$err
 | |
| 
 | |
| 
 | |
| # 6 le fichier  d'erreur doit etre  vide
 | |
| [ ! -s "$err" ]
 | |
| step  $(vraifaux $?) "Votre calcul ne produit pas d'erreur" true
 | |
| 
 | |
| # 7 un resultat existe
 | |
| [  -s "$fres" ]
 | |
| step  $(vraifaux $?)   "Un resultat a ete produit" true
 | |
| 
 | |
| # 8 accuracy
 | |
| [  $(cat "$fres") == "132" ]
 | |
| step  $(vraifaux $?)   "Le resultat est juste" 
 | |
| 
 | |
| 
 | |
| echo  -e "\n Le resultat de votre calcul est: $(cat "$fres") \n"
 | |
| 
 | |
| #--------------------------------
 | |
| # Fin
 | |
| status "${challenge}_$res"
 | |
| 
 | |
| rm -f "$fres" "$err"
 | |
| exit 0
 | |
| 
 | 
