69
you are viewing a single comment's thread
view the rest of the comments

As someone who uses a lot of shell scripts and learning Rust, do tell more.

[-] Ephera@lemmy.ml 13 points 1 day ago

One of the simplest tricks is that you can throw down a function, which you can call with a command like e.g. this: run("cat /etc/os-release | grep NAME")
by constructing a Command like so:

Command::new("sh")
    .arg("-c")
    .arg(command) //the string passed as parameter

There's proper libraries to make running commands even easier and more robust, but if you don't want to pull in a library, that's really easy to write out ad-hoc and gets you 95% of the way there, with shell piping and everything.

[-] 1984@lemmy.today -2 points 1 day ago

You can do this in all programming languages that exist...

[-] FizzyOrange@programming.dev 6 points 9 hours ago

That's kind of the point. You can do it in most languages, so why use a shitty one like Bash? Use a good language like Rust!

Also there are aspects of languages that make many languages less suitable for this application though. For example Python, because you can't use third party dependencies (or at least you couldn't; I think uv has an equivalent of cargo script now). Java would be a pretty awful choice for example.

[-] 1984@lemmy.today 1 points 8 hours ago* (last edited 8 hours ago)

Python is actually super known for its batteries included approach, it has modules for everything. Simply do pip install anything. But best practice is to use a python virtual environment and install packages into that one. Cargo does this by itself in each project and doesnt install modules globally.

But python code is so much easier to write. Its basically almost English and the syntax is easy. Rust... Not so much. Its quite ugly.

Its a systems programming language. Designed to be fast to execute. Its one of the slowest to write code in. But sure, with Ai, you can just ask for a rust script and it will run.

[-] FizzyOrange@programming.dev 3 points 7 hours ago

it has modules for everything

Not everything. PyYAML, Pydantic and Typer are things I commonly want in scripts that aren't in the standard library.

Simply do pip install anything. But best practice is to use a python virtual environment and install packages into that one.

It's more than "best practice". It's mandatory on many recent Linux distros. And yeah setting up a venv and installing dependencies is not something you want to have to do for each script you run.

Its one of the slowest to write code in.

It depends what your goal is. If you want robust code that works reliably then I would say Rust has the edge still. Yes it will take longer to write but you'll spend way less time debugging it and writing tests.

[-] Ephera@lemmy.ml 11 points 1 day ago

Oh yeah, I'm not saying this is what makes Rust special. Rust's strength in comparison to Bash is that it's a lot more competent at control flow and structuring programs. But yeah, virtually any programming language is at least better at that than Bash, so whichever one you're most comfortable with, is probably the best choice. This trick just allows you to make use of Bash's biggest strengths, which is easily running commands and piping between commands, while also having the competent control flow and structuring of your programming language of choice.

this post was submitted on 20 Dec 2025
69 points (98.6% liked)

Rust

7589 readers
79 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 2 years ago
MODERATORS