| Syntax highlighting | Interactive history |
|---|---|
![]() |
![]() |
- simple commands
- quoting
- redirections (
> file) - piping (
command1 | command2) - conditional execution:
&&and|| - compound commands (
{ command1; command2 } | command3) - builitins:
truefalsecd(without-Pand-L)source
- if statements:
if <command-list>; then <command-list>; [else <command-list>]; fi whileanduntilloopsforloops- piping and redirecting to/from bulitins/command lists/if statements
- user defined variables
- special variables:
- return value from last command -
$? - current pid -
$$
- return value from last command -
- inline environment variables (
HOME='/' command) $()command substitution- basic interactive syntax highlighting
- history saved in
~/.kish_history - interactive history lookup ala fish (but with up to 4 simultaneous search results)
- loading
~/.kishrc
The kish shell depends on tcbrindle/span and AmokHuginnsson/replxx. Those dependencies can be pulled from git submodules:
$ git submodule update --init$ cmake .
$ makeThe kish shell can be tested by a shell script located in test/tests.sh.
Simply run the shellscript with a path to built kish as its argument.

