---
# System prepended metadata

title: Correction

---

# Correction

#### create .env

- [x] Utilisez "make -n" to pour vous assurer que le projet compile avec
"-Wall -Wextra -Werror". Si ce n'est pas le cas, cochez le flag
"invalid compilation".
- [x] Le minishell compile sans aucune erreur. Si ce n'est pas le cas,
cochez le flag.
- [x] Le Makefile ne doit pas re-link. Si ce n'est pas le cas, cochez le
flag.
Yes
No
Commande simple et variables globales
- [x] Exécutez une commande simple avec un PATH absolu tel que /bin/ls
ou n'importe quelle autre commande sans option.
- [x] Combien de variables globales y a-t-il ? Pourquoi ? Demandez à la
personne évaluée de vous donner un exemple concret pour démontrer que
leur usage est obligatoire et cohérent.
- [x] Testez une commande vide
- [x] Testez seulement des espaces et des tabs.
- [x] En cas de crash, cochez le flag "crash".
- [x] Si quelque chose ne marche pas, cochez le flag "incomplete work".
Yes
No
#####Arguments et historique
- [x] Exécutez une commande simple avec un PATH absolu tel que /bin/ls
ou n'importe quelle autre commande, avec option mais sans ''
(single quotes) ni "" (double quotes).
- [x] Répétez ce test plusieurs fois avec différentes commandes et
différents arguments.
- [x] En cas de crash, cochez le flag
- [x] Si quelque chose ne marche pas, cochez le flag "incomplete work".
Yes
No
#####echo
- [x] Lancez la commande echo avec et sans argument ou options, ou avec
l'option -n.
- [x] Répétez ce test plusieurs fois avec différents arguments.
- [x] En cas de crash, cochez le flag "crash".
- [x] Si quelque chose ne marche pas, cochez le flag "incomplete work".
Yes
No
#####exit
- [x] Lancez la commande exit avec et sans arguments.
- [x] Répétez ce test plusieurs fois avec différents arguments.
- [x] N'oubliez pas de relancer le minishell.
- [x] En cas de crash, cochez le flag "crash".
- [x] Si quelque chose ne marche pas, cochez le flag "incomplete work"
Yes
No

##### valeur de retour

- [x] Exécutez des commandes simple avec un chemin absolu tel que /bin/ls
ou n'importe quelle autre commande avec des arguments mais sans ''
(single quotes) ni "" (double quotes), puis lancez "echo $?".
Vérifiez la valeur affichée. Vous pouvez le refaire dans bash et
comparer.
- [x] Répétez ce test plusieurs fois avec différentes commandes et
différents arguments.
- [x] Utilisez des commandes qui ne fonctionnent pas telles que '/bin/ls
fichiernul'.
- [x] Essayez des expressions telles que $? + $?
- [x] En cas de crash, cochez le flag "crash".
- [x] Si quelque chose ne marche pas, cochez le flag "incomplete work"
Yes
No

#####signaux
- [x] ctrl-C dans un prompt vide devrait afficher une nouvelle ligne avec un
nouveau prompt.
- [x] ctrl-\ dans un prompt vide ne devrait rien faire.
- [x] ctrl-D dans un prompt vide devrait quitter minishell. Ensuite,
relancez-le.
- [x] ctrl-C dans un prompt après avoir écrit des choses devrait afficher une
nouvelle ligne avec un nouveau prompt.
- [x] Également, le buffer devrait être vide. Appuyez sur "Entrée" afin de vous
assurer que la ligne précédente a été exécutée.
- [x] ctrl-D dans un prompt après avoir écrit des choses ne devrait rien faire.
- [x] ctrl-\ dans un prompt après avoir écrit des choses ne devrait rien faire.
- [x] Essayez ctrl-C après avoir lancé une commande bloquante, comme cat ou grep
sans argument.
- [x] Essayez ctrl-\ après avoir lancé une commande bloquante, comme cat ou grep
sans argument.
- [x] Essayez ctrl-D après avoir lancé une commande bloquante, comme cat ou grep
sans argument.
- [x] Répétez plusieurs fois en utilisant des commandes différentes.
- [x] En cas de crash, cochez le flag "crash".
- [x] Si quelque chose ne marche pas, cochez le flag "incomplete work"
Yes
No
#####double quotes
- [x] Exécutez une commande simple avec des arguments, mais cette fois
utilisez des guillemets (rajoutez des ';' et des espaces entre les
guillemets).
- [x] Essayez une commande comme : echo "cat lol.c | cat > lol.c"
- [x] N'essayez pas $
- [x] En cas de crash, cochez le flag "crash"
- [x] Si quelque chose ne marche pas, cochez le flag "incomplete work".
Yes
No
#####single quotes
- [x] Exécutez des commandes avec des single quotes dans les arguments.
- [x] Essayez des arguments vides
- [x] Faites des tests avec des variables d'environnement, des espaces, des
pipes, des redirections entre les guillemets
- [x] echo '$USER' doit afficher "$USER"
- [x] Rien ne devrait être interprété.
Yes
No
#####env
- [x] Vérifiez qu'env vous affiche bien les variables d'environnement.
Yes
No
#####export
- [x] Exportez des variables d'environnement, dont certaines pour
remplacer les anciennes.
- [x] Vérifiez le résultat avec env.
Yes
No
#####unset
- [x] Exportez des variables d'environnement, dont certaines pour
remplacer les anciennes
- [x] Utilisez unset pour en retirer
- [x] Vérifiez le résultat avec env.
Yes
No
#####cd
- [x] Utilisez la commande cd pour vous déplacer dans l'arborescence et
utilisez /bin/ls pour vérifier que vous êtes dans le bon répertoire.
- [x] Répétez ce test plusieurs fois avec des cd qui fonctionnent et qui
ne fonctionnent pas
- [x] Essayez aussi '.' et '..' en arguments.
Yes
No
#####pwd
- [x] Utilisez la commande pwd, avec et sans argument.
- [x] Répétez ce test plusieurs fois dans différents répertoires.
- [x] Essayez '.' et '..' en arguments.
Yes
No
#####chemin relatif
- [x] Exécutez des commandes en utilisant un chemin relatif
- [x] Répétez ce test plusieurs fois dans d'autres dossier avec un chemin
relatif complexe (beaucoup de ..).
Yes
No
#####PATH d'environnement
- [x] Exécutez des commandes mais sans PATH (ls, wc, awk, etc...).
- [x] Retirez le $PATH et vérifiez si les commandes ne fonctionnent plus.
- [x] Mettez plusieurs répertoires à PATH (directory1:directory2) et vérifiez
qu'ils sont bien évalués de gauche à droite.
Yes
No
#####redirection
- [x] Exécutez des commandes avec les redirections < et/ou >
- [x] Répétez ce test plusieurs fois avec différentes commandes et différents
arguments et, quelques fois, utilisez >> au lieu de >.
- [x] Vérifiez si plusieurs instances de la même redirection échouent.
- [x] Testez les redirections avec << (cela ne doit pas forcément mettre à
jour l'historique).
Yes
No
#####pipes
- [x] Exécutez des commandes avec des pipes telles que 'cat file | grep bla | more'
- [x] Répétez plusieurs fois avec différentes commandes et différents arguments.
- [x] Essayez des commandes qui échouent telles que 'ls fichiernul | grep bla | more'
- [x] Mixez les pipes et les redirections.
Yes
No
#####Soyons fous ! Et l'historique
- [x] Entrez une commande, puis ctrl-C, et appuyez sur "Entrée".
Le buffer devrait être vide et il ne devrait plus rien avoir à
exécuter.
- [x] Peut-on naviguer dans l'historique avec Haut et Bas (profitez-en
pour relancer des commandes) ?
- [x] Exécutez des commandes qui ne fonctionnent pas telles que 'dskdskdksd'
et vérifiez que tout fonctionne comme prévu.
- [x] 'cat | cat | ls' doit fonctionner.
- [x] Essayez des commandes vraiment, vraiment longues avec des tonnes d'arguments.
- [x] Amusez-vous avec ce superbe minishell et profitez-en.
Yes
No
#####Variables d'environnement
- [x] Exécutez echo avec des variables d'environnement ($variable) en argument.
- [x] Assurez-vous que $ est interprété correctement.
- [x] Vérifiez que les guillemets autour des $variables fonctionnent
correctement (comme dans bash).
 - [x] Si USER n'existe pas, définissez-la
 - [x] Ainsi, echo "$USER" devrait afficher la valeur de $USER.



```
