Giter VIP home page Giter VIP logo

proj08_unix_sh's Introduction

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.

proj08_unix_sh's People

Watchers

James Cloos avatar ngoguey avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.