When comparing sh vs Xonsh (The Xonsh Shell), the Slant community recommends Xonsh (The Xonsh Shell) for most people. In the question“What are the best Bash replacements?” Xonsh (The Xonsh Shell) is ranked 3rd while sh is ranked 8th. The most important reason people chose Xonsh (The Xonsh Shell) is:
Xonsh uses a syntax which is a superset of Python 3.4 plus some additional shell primitives. Because of the similarity to Python, which is famously an easy to understand programming language, the syntax of Xonsh is pretty easy to grasp too, even more so for Python programmers.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Truely the most broadly available shell
It may not be the best if you want power, but if you want to write a POSIX script that will run everywhere, it's a pretty good choice.
Pro Most influential Unix shell alongside csh
Bourne shell introduced features such as piping, here documents, command substitution, variables, control structures for condition-testing and looping and filename wildcarding.
Pro Easy to understand, Python-like syntax
Xonsh uses a syntax which is a superset of Python 3.4 plus some additional shell primitives. Because of the similarity to Python, which is famously an easy to understand programming language, the syntax of Xonsh is pretty easy to grasp too, even more so for Python programmers.
Pro Extensible
Most parts of xonsh are extensible. You can change tab-completer, prompt, history backend, aliases, functions and pack it to special package (called "xontrib") and put it on Github. The logic are clear and documented well.
Pro Portable
The xonsh shell has AppImage that makes it Linux-portable.
Pro Command history on steroids - including output
Xonsh has one feature that can be considered particularly unique. It stores not just the commands you type, but their output, and doing a search on your history (configurably) can search the output as well.
Pro Cross platform support
Xonsh has native cross-platform support.
Cons
Con Not suitable for interactive use
The Bourne shell has always been criticized (most notably by Bill Joy, author of csh) as being unfriendly for interactive use.
It has no tilde (~) expansion. Limited file test operators. Limited math operators.