Giter Club home page Giter Club logo

cshell's Introduction

cshell

a shell, written for cs3600

TODO

  • trimstr(Adam)
  • Parsing(Liam
    • break input lines on semi-colons into an array
    • break commands on spaces for args
  • display prompt correctly, read from prompt
  • fork and execute processes
  • Background process handling
  • Complex I/O redirection
  • Pass the final Milestone test
  • Handling interrupts (optional)
  • Handling escape characters
  • Passing the final project tests and stress tests
  • FIX MAKEFILE SO THAT IT COMPILES TREATING WARNINGS AS ERRORS, AND MAKE SURE EVERYTHING STILL WORKS

CS3600 C

  • The Make File
    • To compile the shell, run 'make' or 'make all'
    • To compile the unit tests, run 'make unittests'
    • To compile and run the shell, run 'make run'
    • To compile and run the unit tests on the shell, run 'make utest'
    • To compile the shell and run the given tests, run 'make test'
    • To remove any executables, run 'make cleanall'
    • To compile and run gdb on the unit tests, run 'make debug_utest'
    • To compile and run gdb on the shell, run 'make debug_shell'
  • Compiling
    • Upon compiling, executables are created in a bin directory within the current directory
  • What the shell supports
    • The shell supports commands found in PATH, I/O redirection, and background process
    • Any number of arguments of any length may be supplied
    • The escape characters '\ ', '\t', '\', '&'
    • To give multiple commands in one line, place an semi-colon after each command. Otherwise, an error will be thrown
    • Although unadvised, you may place extra spaces through the given command(s). They will simply be removed.
    • By default, commands will be run in the foreground. In order to change this for a particular command, place an ampersand(&) at the end of the command (before any semi-colons as well
    • In order to exit the shell, simply type 'exit' and hit enter
    • This shell support interrupts, and so should return to 3600sh when pressing Ctrl+C (may need to remove this bullet should we decide not to implement it)

cshell's People

Contributors

dyerw avatar

Stargazers

 avatar

Watchers

 avatar  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.