major: it does not work on POSIX shells, because ':' is not a valid function name and
minor: the function itself should be changed to use the builtin 'case' instead of the bashims [[ ... ]]
major: it does not work on POSIX shells, because ':' is not a valid function name and
minor: the function itself should be changed to use the builtin 'case' instead of the bashims [[ ... ]]
Problem #1 (at least for the "advanced" part of the article's suggestion) is unfixable unless you boil the ocean and change the POSIX spec. I tried to make that clear in the prose, but might have failed at it. It's also the reason why I chose the title to refer to `bash` scripts in particular.
Problem #2 becomes less relevant once you realize that problem #1 completely overshadows it. And in `zsh`, where you can also redefine `:` to invoke a custom function, tests via `[[` also work just like they do in bash.
#!/bin/sh
alias :=mydebug
mydebug() { printf '%s\n' "$\*"; }
foo=1
: this is a debugable comment
bar=2Would it be OK for you if I added that information/workaround to the article (crediting you, of course)?
"Stick to portable constructs where possible, and
you will make somebody's life easier in the future.
Maybe your own."