Skip to content

birnbera/simple_shell

Repository files navigation

Holberton Simple Shell project

Requirements

  • Allowed editors: vi, vim, emacs
  • All files will be compiled on Ubuntu 14.04 LTS
  • C programs and functions will be compiled with gcc 4.8.4 using the flags -Wall -Werror -Wextra and -pedantic
  • All your files should end with a new line
  • Code should use the Betty style. It will be checked using betty-style.pl and betty-doc.pl
  • No more than 5 functions per file
  • Header files should be include guarded

Output

  • Unless specified otherwise, your program must have the exact same output as sh (/bin/sh) as well as the exact same error output.
  • The only difference is when you print an error, the name of the program must be equivalent to your argv[0]

Mandatory Tasks

Task Number Description
0 Write a README, man page, and have an authors file in your repository
1 Write a beautiful code that passes the betty checks
2 Write a UNIX command line interpreter.
3 Handle command lines with arguments
4 Handle the PATH
5 Implement the exit built-in, that exits the shell
6 Implement the env build-in, that prints the current environment
7 Write a blog post about what happens when you type ls -l in the shell

Advanced Tasks

Task Number Description
8 Write your own getline function
9 You are not allowed to use strtok
10 Handle arguents for the built-in exit
11 Handle Ctrl+C: your shell should not quit when user inputs ^C
12 Implement the setenv and unsetenv builtin commands
13 Implement the builtin command cd
14 Handle the commands separator ;
15 Handle the && and
16 Handle aliases
17 Handle variables replacement, Handle $? variable, Handle the $$ variable
18 Handle comments (#)
19 Implement the help built-in
20 Implement the history build-in, without any argument
21 Shell can take a file as a command line argument.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages