stush is a stupid shell. It was created as an educational project and you certainly don't want to run it as you login shell. Compliance with any existing standards is (at least for now) coincidental.
- Line editing (my own library)
- Running scripts from files
- Running external commands
- Running shell builtins
- Variable expansion (both shell and environment)
- Tilde expansion
- Glob expansion
- Pipelines (| and |&)
- Command lists (|| and &&)
- Line editing (using GNU readline or similar)
- Shell configuration
- Prompt customization
- Command history
- Multi-line commands
- Brace expansion
- Parameter expansion
- Redirections and heredocs
- Command substitution
- Any kind of scripting language
- Job control
Currently there are three ways to use stush:
- Interactive mode (default): simply run the stush executable.
- Running a command from command line args:
stush -c 'command'
- Running script files:
stush <filename>
- run file as stush script- Create a script with a shebang pointing to stush's location and run it
Type
help
in interactive mode to get info on all shell builtins.
cmake -S . -B build && cmake --build build
Dependencies:
- CMake (build)
- GoogleTest (testing)
Stush was developed on Linux and currently supports only it.