Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/0bvim/minishell
This project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.
https://github.com/0bvim/minishell
42sp bash filedescriptor minishell42
Last synced: 3 months ago
JSON representation
This project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.
- Host: GitHub
- URL: https://github.com/0bvim/minishell
- Owner: 0bvim
- License: mit
- Created: 2023-12-18T23:47:44.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-16T01:43:53.000Z (4 months ago)
- Last Synced: 2024-09-17T01:42:14.337Z (4 months ago)
- Topics: 42sp, bash, filedescriptor, minishell42
- Language: C
- Homepage:
- Size: 3.97 MB
- Stars: 7
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![eng](../../../stuff/blob/main/USA-icon.png) [![pt-BR](../../../stuff/blob/main/Brazil-icon.png)](README.pt-BR.md)
# minishell
This project is about creating a simple shell.## Table of Contents
- [Mandatory](#mandatory-part)
- [Bonus](#bonus-part)
- [Download](#download)
- [License](./LICENSE)## Mandatory part
We need to implement a bash that handle simple commands like1. 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.````bash
# && and || examples
echo Hello && echo Bye
wrong_command || echo right_command
``````bash
# Wildcard example
ls *
cat *c
```## Download
```ssh
git clone [email protected]:vinicius-f-pereira/minishell.git
```Use `make` or `make bonus` and follow instructions [`Here`](#mandatory-part)