Skip to content

YohanDecamps/42-SH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Epitech Shell | 42sh

Description of the project

The goal of this project is to create a UNIX shell based on tcsh

The project is the following of the minishell1 and minishell2 projects. This project is the last project of the year for the PSU track.

The code architecture is clean and simple and the project is tested with a CI/CD through github actions on every push. Integration tests are also run in order guarantee the robustness of the program

Objectives of the project

Mandatory:

  • spaces and tabs
  • $PATH and environment
  • errors and return value
  • redirections (‘<’, ‘>’, ‘<<’ and ‘>>’)
  • pipes (‘|’)
  • builtins: cd, echo, exit, setenv, unsetenv
  • separators: ‘;’, ‘&&’, ‘||’

Optional:

  • inhibitors (‘\’)
  • job control (‘&’, fg)
  • variables (local and env)
  • history (‘!’)
  • aliases
  • line edition (multiline, dynamic rebinding, auto-completion dynamic)

Bonus features:

  • Integration tests
  • Project organization (through volta)
  • Custom prompt

About

UNIX command line shell in C

Resources

Stars

Watchers

Forks

Packages

No packages published