There is great context/info for this sort of thing/shim here – Environment Variables Behavior On Haiku - #24 by phw
Might be worth doing some C/C++'ing near-future to harmonize between shell-shim and other.
I noticed @nephele isn’t a huge shell fan. Don’t blame him, but “trade offs” – lots of flexibility and ability to glue things, and reasons that are similar to why the Web went “use all text”, even if the trade-offs are sometimes hard.
For sanity and a Bash-upgrade bath, check out:
The guy behind that project is doing a Herculean work, creating both
a “real” language, to underly the shell, and
a variant that works like Shell
– both as Bash (to be implemented as Bash-compatible, where they mean “we are running real build scripts for existing systems and checking they’re 100% compat., and if they aren’t we’re not done yet”), and
– and to include options to selectively-break Bash scripts to allow leverage of the “real” language features (e.g. including types).
Far, far better ideas actually exist already as implemented shells (from those which have something like “secret” as a data type which include considerations as far as “people might stream things so hide secrets on the shell in case of OBS”, to things like ksh93 and mksh…) but not that right now allow efforts to leverage all the existing work in largely-Bash -targeting Shell. He also happens to constantly find and report the bugs in Bash (and in others, e.g. reports vulns in the ksh shipped with OpenBSD, which is funny since OpenBSD keeps their shell simpler than e.g. the ksh93’s circulating, for auditing etc.)