i didnt care about how i wrote my bash scripts, coz i know theyd ultimately be used just by myself. but for the past few day, i’ve been working on this project, mk-blog which uses some bash scripts, there are chances that others might look at them. besides in work they’re asking me maintain a server. so why not learn the standards. but i couldn’t find anything good online (i’m gonna blame my search engine lol). so…

i’d appreciate redirections to (official or community) bash coding standards

  • boredsquirrel@slrpnk.net
    link
    fedilink
    arrow-up
    5
    ·
    5 months ago

    A yes, the fear of opensourcing.

    Trust me, proprietary code is often total garbage because nobody looks at it.

  • demizerone@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    4 months ago

    If your bash script gets longer than 200 lines (including argument handling), use Python. I have to support bash APPLICATIONS at work and it’s a fucking nightmare to maintain.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    5 months ago

    There is no single Bash standard to follow, only a few guidelines. One way you can check for some basic errors and formatting would be using an editor with support for Bash (in best case with a builtin LSP). At the end, you have to find your style and coding standards or adapt what others do if you want work with them or edit their files.

    • Otherwise there is a well known tool for checking Bash files: https://www.shellcheck.net/ You can use it online and as a downloaded program on your local machine. After using shellcheck for a bit I got used to some of its conventions and recommendations, such as always wrapping variables like in ${variable} and some other things.
    • Google has a coding style guide, but not everyone likes it: https://google.github.io/styleguide/shellguide.html
    • Related is the Bash Reference Manual from GNU: https://www.gnu.org/software/bash/manual/bash.html Off course this is not a guide on how to style or program, but it helps in understanding how GNU does things.

    BTW the mk-blog link is 404 for me.