Another shell can run anywhere Python exists.
Why another shell
Because it’s fun.
Supported shell feature
Common shell features can be found here. Pysh already have:
Supported commands can be found here.
More commands are on the way. PR welcomed !
Have fun ?
How PySh work
A shell in unix box is a bridge bewteen user and the kernel through system call.
As we can see from above picture (taken from here), some commands (eg
cat) are passed to other programs, while built-in commands (eg
exit) are executed inside shell. This way can keep shell small in size and strong in function.
In order to let PySh run anywhere (hi, Windows, I mean you), PySh implmented all commands in its core, so there is no differences bewteen builtins and one that is not, also you can say all commands are builtins.
One thing I should mention here is:
Pipelines between different commands are supported by generator in Python.
So, every command should
yield something, this is like s-expression in Lisp world, where every s-expression should return a value.
How to contribute
Fork and PR ?