Yeah, I think if I wasn’t familiar with Python, it’d be nushell all the way.
Yeah, I think if I wasn’t familiar with Python, it’d be nushell all the way.
thanks, good thread.
It’s a superset of python, so valid python should run fine. Imports into your shell are doable, too – for example, I import path.Path
in my xonshrc, so it’s always available when I hit the shell. I don’t often have to use Path
, because regular shell commands are often more straightforward. But when I do, it’s nice to have it already loaded. Granted, that could get kooky, depending on what you import and execute.
You can associate/shebang Xonsh with .xsh files, or run “xonsh foo.xsh” - and that works like “bash foo.sh” would, except using xonsh syntax, of course.
It’s not Bash compatible - copypasta of scripts may not work out. But it’s a good shell with some typical shell semantics.
there are some great plugins, too - like autovox, which allows you to create python venvs associated with specific subfolders. so, cd myproject
does the equivalent of cd myproject; . path/to/venv/bin/activate
.
overall, there definitely is some jank, but it’s a great tool and I love it.
I like nushell, but I love xonsh. Xonsh is the bastard love child of Python and Bash.
it can be thought of as:
Now, that’s not a very accurate description, because the reality is more nuanced, but it allows for things like:
for file in !(find | grep -i '[.]mp3^'):
file = Path(file.strip())
if file != Path('.') and file != file.with_suffix('.mp3'):
mv @(file) @(file.with_suffix('.mp3'))
Now, there are things in there I wouldn’t bother with normally - like, rather than using mv
, I’d just use file.rename()
, but the snippet shows a couple of the tools for interaction between xonsh and sh.
But, either a line is treated in a pyhony way, or in a shelly way - and if a line is shelly, you can reference Python variables or expressions via @(), and if it’s Pythony, you can execute shell code with !() or $(), returning the lines or the exact value, respectively.
Granted, I love python and like shell well enough, and chimeras are my jam, so go figure.
tragedy of the Commons, with external pressure to boot.
I like to think about ethics. I still pirate some random stuff here and there, but one thing I like to do is make sure I’m getting some money to the creators of what I’m enjoying, skipping the middle man as much as can be.
this is mostly only relevant with music, but if I can buy an album or song directly from the artist, that’s awesome. it not, i try to five what service benefits them most.
Yes, ish. There are aspects of it that are really valuable, and fit some use cases extremely well. But, in some senses, yes. Like any DBMS, you’ve got to know it’s strengths and weaknesses. And if you do, there are definitely circumstances where you’d choose it over others. But not always.
This is kinda absolute BS at this point, though.
Mongo has acid transactions, and has for years now. Although this is only within the same database, there are plenty of dbms (including rdbms) that don’t support cross-database transactions.
Mongo also, since time immemorial, has had “write concern” to ensure that it’s written to disk (to the journal) before the transaction is completed.
install Linux. then it works.
edit: seriously, though. AMD GPUs are what it’s like in Linux when a vendor plays nice. It’s the Real Linux Experience™️ that you get when using supported hardware.
points at blurry image of vehicle in background
enhance!
You can do Linux if your situation meets these criteria:
tbh, it sounds like you don’t want to have to think about and test it. …and if that’s true, then you shouldn’t be switching operating systems if you can reasonably avoid it.
-bro, but yeah, good point.
yeah. poorly worded.
yeah, that was ambiguously worded.
Grow up. he did.
he has. people just prefer to go on judging. how you supposed to feel good about yourself if the people you hate for hating stopped hating?
then don’t ask questions you can find out in other comments.
because people like things.
maybe read the headline and the comments, but only like 30% before i react. I guess 75% for the headline maybe.
Succinctness, mainly. but honestly, that succinctness
callcan also be mostly acquired usingsh.py
, which is what I normally use if I’m using python as a sort of shell scripting - mostly becausesh.py
is a very minimal requirement, whereas Xonsh has quite a few dependencies.addendum: I’d say, if you’re already using Xonsh, and aren’t really looking to share your script with anyone other than Xonsh users or your own systems, you’d probably like to use .xsh scripts. But if you’re looking to share your script, use
sh.py
.