this post was submitted on 06 Aug 2023
605 points (97.3% liked)

Programmer Humor

19522 readers
266 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] kogasa@programming.dev 1 points 1 year ago* (last edited 1 year ago) (5 children)

I can't think of a single reason to use bash over Python. Anything you can do in bash can be done in pure Python. Unless you're working in some embedded environment it's a non-issue to install a Python interpreter (you certainly already have one). I would only use sh/bash for packages I'm distributing to avoid the external dependency, and then only if it's a relatively simple script.

[–] bort@lemmy.sdf.org 19 points 1 year ago (1 children)

I know whatever environment I run my shell script in has sh, I can't rely on (the right version of) python being there.

[–] alexcoder04@programming.dev 18 points 1 year ago (1 children)

Bash is much better for doing file operations and piping the output across multiple commands

[–] corm@beehaw.org -1 points 1 year ago

Better than subprocess.getoutput?

[–] Reborn2966@feddit.it 14 points 1 year ago (2 children)

i would not run a python script with root.

[–] kogasa@programming.dev 5 points 1 year ago
[–] ultimitchow@sh.itjust.works 0 points 1 year ago (1 children)

i run my daily NAS backup python script with root.

[–] AProfessional@lemmy.world 2 points 1 year ago

It is fine, just should be more careful with modules used.

[–] MonkderZweite@feddit.ch 9 points 1 year ago (2 children)

Why is always about bash? POSIX shell scripts run everywhere.

[–] AProfessional@lemmy.world 3 points 1 year ago (1 children)

BASH has some useful features and I’ve literally never had an environment with bash unavailable (even if a package is needed, so what).

[–] MonkderZweite@feddit.ch 1 points 1 year ago (1 children)

MacOS ships only 3.something version, which has some compatibility issues with Bash 4+.

[–] AProfessional@lemmy.world 4 points 1 year ago

brew install bash

[–] IRQBreaker@lemmy.kozow.com 2 points 1 year ago

Granted, it's a kind of niche use case but in the embedded world there's usually size constraints which prevents a full blown bash installation.

However, things are better now than 20 years ago. Flash is cheap.

[–] CoderKat@lemm.ee 6 points 1 year ago (1 children)

Python is superior for string anything (parsing, searching, manipulating). But Bash is much simpler for running existing CLI tools. Plus you should already be using Bash as a simple terminal language already, so wrapping what you're used to into a simple script flows naturally.

Eg, if I have some admin tool for updating a user thingamajig, a common scripting need is just running that tool for every user in a file (or the output of another command). The string manipulation that often requires is annoying in bash, but running the commands is easier than Python.

[–] kogasa@programming.dev 2 points 1 year ago

If what you're doing is essentially a few shell commands, then you may as well put it into a script. If you're talking about how "elegant" your shell scripts are and comparing them to Python, you're probably wrong and should be using Python.