_____ ______ ____ _____
/ ___| / | | / \ |
/ / / __| | \ / |
/ / \ / | \____/ |
| | \ \ | | | |
| | \ \ | \ / |
| | ___ \ \ | / \ |
\ \ |___| \ \ | |____| |
\ \ | | \ \ | / \ |
\ \__| | _____/ | | / \ |
\______| |__________| |____\ /___|
This is a team project given at the end of the first trimester at ALX. We were required to apply the concepts thus learnt through the trimester into building a simple shell similar to bash or dash. I must say that it wasn't easy at first combining all the knowledge acquired into something that was big. We also couldn't finish all the tasks required provided. We managed to implement the mandatory tasks.
NOTE: this project may be update to include some of the advanced tasks...
In order to install Gsh and get the benefits of the features it provides or test or work on certain features:
- Clone the repository
cd
into the directory- run
source ./build
to compile it - If there is not error, run
./Gsh
and enjoy our hardwork 😉.
- Display a prompt and wait for the user to type a command. A command line always ends with a new line.
- If an executable cannot be found, print an error message and display the prompt again.
- Handle errors.
- Handling the command line with arguments.
- Handle the PATH.
- Support the exit features and the exit status.
exit
- exits the shell
exit [STATUS]
env
- displays the environmental variables
env
Check the AUTHORS file
A contribution guide is supposed to be written in a separate file, but permit this here for sometimes. To contribute:
- fork this repo,
- create a branch,
- Update, Fixed, or add what you feel this project needs
- Add, commit, push to the repo
- Create a pull request
- We will review it, if it is beneficial and not conflicting, it will be merged and you will be added to the AUTHORS file.
- Then you are a contributor 😀.