My Lights Run on Bash – Tomasz Kramkowski

34 todsacerdoti 8 6/27/2025, 11:09:42 AM kramkow.ski ↗

Comments (8)

Rediscover · 3h ago
It's time for me to re-read the man page for bash. I was not aware of BASH_REMATCH, wow. It's in the first snippet on the linked page, and would save the hassle of using multiple var expansions of the %% and ## et al sort.
tecleandor · 2h ago
Oh yeah! I was unaware too! Nowadays I quickly jump to python instead of using Bash even for the simplest of scripts , but this could help creating tiny and easy to understand scripts for some integrations...
enriquto · 2h ago
> I quickly jump to python instead of using Bash even for the simplest of scripts

You don't seem to respect the old, venerable, well-tested adage: "once your shell script becomes too complex, switch to a real programming language like python".

Or, the zen version (formally equivalent, but with quite a different tone): "once your program becomes sufficiently simple, turn it into a beautiful shell script".

skydhash · 58m ago
The true power of shell script is to coordinate programs. Once you find yourself altering data with the shell constructs, that's the sign to use $LISP instead.
alganet · 1h ago
Yes, but also:

https://wiki.ubuntu.com/DashAsBinSh#Why_was_this_change_made...

> [bash] is rather large and slow to start up and operate by comparison with dash

For more complex regular expressions, you can use `sed`.

--

It's all a matter of context. Sometimes simple ## and %% param substitutions are the best tool for the job.

I think bash is a fantastic interactive shell and a lousy script runner.

sunshine-o · 2h ago
For those using termux, termux widgets are exposed to Android device control so you don't need the MqttDroid app
Arch-TK · 2h ago
Interesting... I didn't know about this, although I was pretty satisfied with the simplicity of MqttDroid (after I fixed a bug: https://github.com/LightJockey/MqttDroid/pull/3). Will investigate to compare.
sunshine-o · 2h ago
MQTT is a fantastic protocol.

I basically do the same as the author but use nutshell and its powerful pattern matching [0] as the router

-[0] https://www.nushell.sh/cookbook/pattern_matching.html#patter...