Skip to content

robkle/42sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

42sh

42sh is a Unix shell with:

  • Redirection and aggregation operators
  • cd, echo, exit, and type built-ins
  • '&&' and '||' logical operators
  • Internal and environmental variable handling<
  • Job control monitoring, with built-ins 'jobs', 'fg', 'bg', and the '&' operator
  • Signal handling
  • Complete management of history including expansions, 'fc' builtin and reverse search
  • Complete managament of quotes, double quotes and inhibitors
  • Parameter expansion: ${}
  • Arithmetic expansion : $(())
  • Alias management via built-ins 'alias' and 'unalias'
  • Hash table via built-in 'hash'

Usage

Repository contains a Makefile for:

  • compiling executable (make all)
  • removing object files (make clean)
  • deleting executable (make fclean)
  • recompiling (make re)

Notes:

This project was done together with dthan, ihwang and VictoriaElisabet and is part of my studies at Hive Helsinki.
My part of the code handles the history, arithmetic expansion and line edition of user input.
This project was thoroughly tested by 5 fellow Hive students.