Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/magnitopic/minishell

As beautiful as a shell
https://github.com/magnitopic/minishell

42cursus bash clang execve linux macos minishell minishell42 parsing pipes shell signals

Last synced: about 11 hours ago
JSON representation

As beautiful as a shell

Awesome Lists containing this project

README

        

# Minishell

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


Screen Shot 2023-08-17 at 7 36 12 PM

# Team work 💪

This project was done alongside `Javier Sarabia`(JaviBurn).
Check him and his work out at these links:

- [Linkedin](https://www.linkedin.com/in/javier-sarabia-224580195)
- [GitHub](https://github.com/javiburn)
- [42Intra](https://profile.intra.42.fr/users/jsarabia)

# Program

## Initial installation

```bash
git clone https://github.com/magnitopic/minishell.git
cd minishell
git submodule init
git submodule update
```

## Compilation and execution

> **_Note:_** `Readline` is required for the program to compile. On Linux this should not be a problem. On Mac it can be installed with `Brew`.

> If issues persist you might need to change the value of the `EXTRAFLAGS` var in Makefile

```bash
make
./minishell
```

## Execution with no env

```bash
env -i ./minishell
```

# Unsupported features

The Minishell project attempts to function very similar to Bash but some features are not required or are from the bonus part.

Unclosed quotes, or special characters that are not required by the subject like `\`(backslash), `;`(semicolon) or `!!`(bang bang) are not supported.

`&&` and `||` with parenthesis for priorities as well as `*`(wildcards) are features from the bonus part.

The only implemented builtins are `echo`, `cd`, `pwd`, `export`, `unset`, `env` and `exit`.