Skip to content

phspeters/minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐚 minishell

πŸ’‘ About the project

This project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.

πŸ“ Requirements

Mandatory part:

  • Display a prompt when waiting for a new command.
  • Have a working history.
  • Search and launch the right executable (based on the PATH variable or using a relative or an absolute path).
  • Not interpret unclosed quotes or special characters which are not required by the subject such as \ (backslash) or ; (semicolon).
  • Handle ’ (single quote) which should prevent the shell from interpreting the metacharacters in the quoted sequence.
  • Handle " (double quote) which should prevent the shell from interpreting the metacharacters in the quoted sequence except for $ (dollar sign).
  • Implement redirections (< , > , << , >>)
  • Implement pipes (| character). The output of each command in the pipeline is connected to the input of the next command via a pipe.
  • Handle environment variables ($ followed by a sequence of characters) which should expand to their values.
  • Handle $? which should expand to the exit status of the most recently executed foreground pipeline.
  • Handle ctrl-C, ctrl-D and ctrl-\ which should behave like in bash.
  • Your shell must implement the following builtins:
    • echo with option -n
    • cd with only a relative or absolute path
    • pwd with no options
    • export with no options
    • unset with no options
    • env with no options or arguments
    • exit with no options

Bonus part:

  • && and || with parenthesis for priorities.
  • Wildcards * should work for the current working directory.

πŸ“‹ Testing

To compile, navigate to the project directory and run:

$ make 

Then, execute the program.

$ ./minishell 

About

This project is about creating a simple shell. Yes, your own little bash. Developed with luiz-edd.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors