this post was submitted on 02 Sep 2023
65 points (88.2% liked)
Programming
17495 readers
10 users here now
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Unfortunately shell script is not as portable as you might be anticipating. Different distro run different shells, with different settings, and also different tools. Think BSD grep vs GNU grep.
I've seen multi distro scripts that are also able to bootstrap their own assets for each distro/architecture. Don't see why you wouldn't be able to check that considering
/etc/os-release
exists in pretty much every unix like environment.And having it run on a specific shell type could also be an option.
I discovered a fun one the other day: there is literally no way to represent word-boundary anchors that's valid in both GNU
sed
and BSDsed
. https://unix.stackexchange.com/a/393968/38050That's what the POSIX spec is for. BSD and GNU commands may differ, but they both support what's specified by POSIX. By limiting your calls to it, you can write portable script with no problem (I've been doing that for the last few years without issue).