Skip to content(if available)orjump to list(if available)

My Lights Run on Bash – Tomasz Kramkowski

Rediscover

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

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

> 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

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

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

For those using termux, termux widgets are exposed to Android device control so you don't need the MqttDroid app

Arch-TK

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

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...