>>> os.getcwd()
'C:\\Users\\Admin\\Downloads'
>>> os.system("cd Video")
0
>>> os.getcwd()
'C:\\Users\\Admin\\Downloads'
>>> import os
def sh(x):
return os.popen(x).read().split("\n")It's just like Bash scripting, except in Python. You can mix and match Python statements with regular shell commands.
sh.ls("-l", "/tmp", color="never")
Oh dear - no. A lot less ergonomic than "ls -l /tmp".If all you want is a convenient way to call commands from Python scripts, sh makes sense. The benefit of xonsh, though, is that it is a shell :-)
So, for example, if you want to have a fancy prompt, you can use Python functions to construct your fancy prompt. If you want to manipulate your $PATH as a list (or any similar environment variable), you just treat it like a Python list and do whatever you want with it.
I often write simple conditionals/for loops right on the prompt (not via a shell script). I use the Python syntax, but call whatever command I want and manipulate it.
And it's really handy that the shell prompt is a Python prompt - you can import any Python library and play with it. I never run "python" to get to a Python prompt. I have it available at all times. I want to look at a docstring for a standard Python function? I just do it at the command line.
I've used xonsh as my primary shell for many years now. The Bash compatibility was poor initially, but they fixed most/all the issues, and source-bash just works.
I use Gentoo, and don't actually use sudo, so I can't comment on that (I just su into root).