Skip to content

Ngoguey42/proj08_unix_sh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project #8 SH, Jan 2015

#####A shell of my own.

#####sh1 grade (111/100) (111/118)* #####sh2 grade (tbd/100) (tbd/118)* #####sh3 grade (tbd/100) (tbd/118)*


This project is subdivided into 4 parts.

  • sh1: Implement basic built-in commands, execute any command from PATH, etc...
  • sh2: Handle those six operators: "; | < << >> >" Introduced in [PIPEX project].
  • sh3: Cursor position and keyboard control keys. Introduced in [ft_select project].
  • 42sh: Group project.



sh1 Goals:

  • Display a prompt.
  • Execute any command from PATH.
  • Full error handling without errno.
  • Built-ins: cd, setenv, unsetenv, env, exit.
  • Read commands through argv's -c option or stdin reading.

My sh1 additions:

  • All env's options.
  • Tilde '' + options ('+', '~-').

sh2 Goals:

  • Semicolons ';'.
  • Pipes '|'.
  • In redirection '<'.
  • Here document '<<'.
  • Append out redirection '>>'.
  • Out redirection '>'.

My sh2 additions:

  • Arguments for 'in' redirection: '[digits]<{&digits|file}'
  • Arguments for 'here document' redirection: '[digits]**<<**keyword'
  • Arguments for 'out' redirections: '[digits|&]>{&digits|file}'
  • Arguments for 'append' redirections: '[digits]**>>**file'

MiniShell





All my C files blindly observes school's norm, it may often lead to odd or illogical syntaxes.
- [ ] Forbiden keywords: for, do, switch, goto.
- [ ] No more than 25 lines inside a function block.
- [ ] No more than 80 characters per lines.
- [ ] At most 5 functions per files.
- [ ] Only 1 declaration per line.
- [ ] No declaration and assignation on the same line.
- [ ] At most 1 assignation per line.
- [ ] No more than 4 parameters for a function.
- [ ] No nested ternary.
- [ ] Comments alowed at the top of the file.
*
- A grade of 85 was required to validate the project.
- A maximum grade of 118 was reachable.
- Second sessions are organised for failed projects.

About

Build a shell of my own. Jan2015

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published