- fichier
AUTHORS.md
- Makefile avec
make
etmake clean
- fichier
ARCHITECTURE.md
expliquant la stratégie adoptée pour répondre au sujet (notamment l'architecture logicielle, les structures de données et les algorithmes implémentés)
- jsh ignore les signaux
SIGINT
, (...) contrairement aux processus exécutant des commandes internes. (jsh.c:33-40 ; exec.c:162-176) - OPTIONNEL: amélioration d'exit.
-
<
,>
,>>
,>|
,2>
,2>>
,2>|
(exec.c:111-150 ; jsh.h:21) -
|
-
<()
-
&
qui n'est pas à la fin (input.c:64) -
cmd >
- redirection vers rien (input.c:87) -
cmd > | ...
- redirection vers pipe -
cmd | | ...
- double pipe
(input.c:125-141)
- nombre de jobs surveillés avec une couleur
- répertoire courant avec une couleur
- 30 caractères max
- affichage du prompt sur sa sortie erreur (jsh.c:31)
- affichage du prompt et lecture de la ligne saisie (jsh.c:50 ; input.c:141)
- découpage en bloc (input.c:153)
- interprétation des caractères spéciaux
&
,<
,>
,|
(input.c:) - exécution de la commande (jsh.c:52)
- check des jobs en cours avant chaque nouvel affichage du prompt (jsh.c:48)
- affichage des jobs ayant changé de status (créé, stoppé, terminé, détaché) sauf pour ceux au premier plan devenus (achevé, tué ou détaché) (jsh.c:49)
- Lorsque la fin de l'entrée standard est atteinte (Ctrl-D), exécute
exit
(input.c:143)
- valeur de retour 0 pour succès et 1 pour échec
-
cd
,cd rep
,cd -
(internalcmd.c:38) -
?
(internalcmd.c:94) -
exit
lorsqu'il y a des jobs en cours ou suspendus (internalcmd.c:81) -
exit val
,exit
(internalcmd.c:79) -
jobs
(internalcmd.c:107) -
jobs -t
-
jobs %job
-
bg %job
,fg %job
(internalcmd.c:XXX) -
kill [-sig] %job
,kill [-sig] pid
(internalcmd.c:122)
- exécuter toutes les commandes externes, avec ou sans arguments, en tenant compte de la variable d'environnement PATH. (exec.c:172 ; exec.c:80, execvp prend en compte la variable PATH)
- un job dont au moins un processus n'a pas terminé, mais dont tous les processus directement lancés par le shell ont terminé, est détaché (detached) et quitte la surveillance de jsh;