When comparing Xonsh (The Xonsh Shell) vs rc (shell), the Slant community recommends Xonsh (The Xonsh Shell) for most people. In the question“What are the best UNIX shells?” Xonsh (The Xonsh Shell) is ranked 5th while rc (shell) is ranked 6th. 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 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 Portable
The xonsh shell has AppImage that makes it Linux-portable.
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 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.
Pro Simple
rc is a very simple and easy to learn shell.
Pro C-like syntax
rc has very C-like syntax, which is very helpful for people who are used to C-like programming languages and will find rc's syntax very enjoyable. For example:
for (i in `{seq 1 100}) {
echo $i
}
Pro Sane array handling
In rc $array
expands to the whole array and if one of the elements of the array has spaces in it, it's still considered one single element after the array variable expansion.
Cons
Con Lacks return statement
rc has no return
statement.