Design and implement a simple shell. The interpreter takes a single line from the standard input and splits it into single space-separated words. The first word is the name of the executed program (use the PATH variable) and the other words are the arguments. The shell runs the program and waits for its completion, unless the command is ended with '&', which executed the program in the background, just like in bash. The shell exist on end-of-line (EOL) character. This behavior enables the execution of simple scripts, that can be run from bash, if the first line of the script is:
#!/path/to/my_shell
also we need a command history – the shell stores the 20 previous commands in an external file in the user home directory, so the history should 'survive' after the shell exit. SIGQUIT (Ctrl+\) signal should print the history on the standard output (be careful with the signal handling).