PizzaSHELL (a.k.a.) pzash
- Editable input, history, and filename autocompletion (through
<readline.h>
) - Pizza prompt 🍕 (shows current working directory and timestamp)
- Piping!
- Special character expansion (currently only
$
and~
) - Whitespace stripping
- Non-interactive execution (with
-c
) - True wildcard expansion/globbing (
*
) - Quote handling (especially for non-interactive mode)
- both of the above implemented with
<wordexp.h>
- both of the above implemented with
-
cd
with previous directory switching ($ cd -
) - Help function
- Two-operand math
- File info (simplified
lstat
) - Echo
- Expose
<math.h>
functions - Aliases (e.g.
ll=ls -l; ls=ls -g; grep=grep --color
)- especially for color-by-default
- Piping builtins
- Multiline input
- Command autocompletion
- Pizza ordering
- currently SIGINT (sent by Ctrl-C) is caught by the parent process, killing the whole shell rather than just the forked child