Sorry for the long delay...
Beginners Challenge #7: Write a basic bash-like shell
The idea is to write a simple shell that behaves more or less like a normal Unix shell.
- You must present a prompt and take input from the keyboard
- You must support running of commands based on the $PATH environment variable
- You must support the following builtin commands: "cd" and "exit"
- You must wait for and properly cleanup any commands the shell starts
- You must inform the user if the input is an invalid command/builtin
- You must cleanly handle the case where users hit return without typing anything
Though not required, bonus points will be added for clean implementations of any of the following:
- Supporting ~/ and ~user
- Supporting proper Ctrl-C behavior
- Supporting background processes (extra bonus points for properly handling Ctrl-Z, bg, fg and jobs).
- Supporting history type functionality
- Supporting manipulation of environment variables
- Supporting pipes and redirection
- Supporting tab completion
- Supporting an rc file
- Supporting scripting functionality
- You may use readline if you wish
- You may not use any languages/libraries that aren't in the Ubuntu repos
Judging will happen in approximately 2 weeks. At which time I'll appoint someone to write the next challenge.