Skip to content

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

License

Notifications You must be signed in to change notification settings

0bvim/minishell

Repository files navigation

eng pt-BR

minishell

This project is about creating a simple shell.

Table of Contents

Mandatory part

We need to implement a bash that handle simple commands like

  1. redirections
    • output (ls > file)
    • append (echo Hail >> file)
    • input (< Makefile cat)
    • heredoc (cat << delimiter_to_stop)
  2. pipes
    • cat Makefile | grep CFLAGS | tr ' ' '#' | wc
  3. command history
  4. environment variables
  5. signals
    • ctrl-C
    • ctrl-D
    • ctrl-\
  6. $? (expand to the exit status of the most recently executed foreground pipeline)
  7. 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

  • Our program has to implement
    • && and || with parenthesis for priorities.
    • Wildcards * should work for the current working directory.
# && and || examples
echo Hello && echo Bye
wrong_command || echo right_command
# Wildcard example
ls *
cat *c

Download

git clone [email protected]:vinicius-f-pereira/minishell.git

Use make or make bonus and follow instructions Here

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •