In response to nobody in particular.. I've always started shells with
#!/usr/bin/env sh I now go *way* out of my way to not just remove bashisms but replace anything I can with POSIX compatible code. Call it puritanism as practice. I lint with Shellcheck: http://www.shellcheck.net/ The pure sh bible has been a big help: https://github.com/dylanaraps/pure-sh-bible Here are some examples of replacing "standard" software: https://github.com/spiralofhope/shell-random/blob/master/live/sh/scripts/examples/replace-head.sh https://github.com/spiralofhope/shell-random/blob/master/live/sh/scripts/examples/replace-dirname.sh -- If anyone wants to see the lengths I've gone to: https://github.com/spiralofhope/shell-random/tree/master/live/sh/scripts https://github.com/spiralofhope/shell-random/tree/master/live/sh/scripts/examples Of course it's slower to use scripts that summon other scripts, as my repository does, but it's easy enough to copy-paste functions into the primary script. Only startup scripts are time-sensitive for me, and everything else gains great clarity by separating functions out into separate scripts. In my preemptive defence, my style is clean and clear to me and allows for reading using columns. With that, a simple idea becomes a simple script: https://github.com/spiralofhope/shell-random/blob/master/live/sh/scripts/is-string-a-date?.sh _______________________________________________ Dng mailing list Dng@lists.dyne.org https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng