On Mon, 17 Mar 2025, Mark Hindley wrote:

> Scripts should follow the style produced by shfmt(1)

FWIW, never heard of that tool.

> - case indented

Don’t indent case, it’s useless and just adds clutter.
You cannot have something other than the pattern inside, so:

case $foo in
(bar)
        echo bla
        ;;
(*)
        echo nope
        ;;
esac

(If all scriptlets are extremely short, merging on less
lines is possible.)

> - prefer '[ ]' to test(1) or builtin

I personally, as the maintainer of a shell and a plethora of
scripts, recommend people to prefer test(1) over [ … ] instead
because the latter “looks like” special syntax but [(1) isn’t
(unlike [[ … ]], which they may also know), and that leads to
insecure code, whereas test(1) looks more like a normal program
whose arguments need proper quoting. I’m aware that this is a
minority opinion, though.

http://www.mirbsd.org/man9/style has bits applying to shell
scripts as well.

bye,
//mirabilos
-- 
„Cool, /usr/share/doc/mksh/examples/uhr.gz ist ja ein Grund,
mksh auf jedem System zu installieren.“
        -- XTaran auf der OpenRheinRuhr, ganz begeistert
(EN: “[…]uhr.gz is a reason to install mksh on every system.”)

Reply via email to