Ce projet consiste à créer de toutes pièces un shell complet.
Repository original: Nrechati/42sh-UNIX-Shell
- Affichage d’un prompt
- Exécution de commandes avec leurs paramètres et gestion du PATH
- Gestion des erreurs, sans utiliser errno, et de la valeur de retour des commandes
- Gestion correcte des espaces et des tabulations
- Opérateurs de redirection et d’aggrégation : >, >>, <, <<, >&, <&
- Pipes '|'
- Déparateurs ';'
- Opérateurs logiques '&&' et '||'
- Gestion des variables internes au shell
- Création de variable interne selon la syntaxe : name=value
- Exportation des variables internes vers l’environnement (via le built-in export)
- Création de variable d’environnement pour une commande unique (exemple HOME=/tmp cd)
- Gestion des parametres speciaux:
$?, $ $,$!, $ -, $0
- Édition complète de la ligne de commande
- Gestion des sub-prompts
- Gestion du job control, avec les built-ins jobs, fg, bg et l’opérateur &
- Gestion des signaux
- Gestion des inhibiteurs " (double quote), ' (simple quote) et \ (backslash)
- Expansion simple des paramètres selon la syntaxe
${} et la syntaxe $ - Expansion du tilde
- ${parameter:-word}
- ${parameter:=word}
- ${parameter:?word}
- ${parameter:+word}
- ${#parameter}
- ${parameter%}
- ${parameter%%}
- ${parameter#}
- ${parameter##}
- Incrémentation, Décrémentation ++ --
- Addition, Soustraction + -
- Multiplication, Division, Modulo * / %
- Comparaison <= >= < >
- Égalité, Différence == !=
- ET/OU logique && ||
- Gestion complète de l’historique :
- Expansion !!
- Expansion !word
- Expansion !number
- Expansion !-number
- Recherche incrémentale avec CTRL+R
- Recherche dans l'historique via les flèches directionnelles haut et bas
- Sauvegarde dans un fichier pour être utilisé sur plusieurs sessions
- Built-in fc
- Complétion des commandes et des built-ins
- Complétion des fichiers
- Complétion des variables internes
- Gestion d'une table de hashage pour les binaires et pour les built-ins
- Buil-in hash
- Execution de commande avec l'option -c
- Execution de commande par pipe
- cd
- echo
- exit
- type
- set
- unset
- export
- jobs
- fg
- bg
- fc
- hash
- pwd
- test