Scripting guidelines

Dan Kenigsberg danken at redhat.com
Thu Feb 20 23:37:24 UTC 2014


On Thu, Feb 20, 2014 at 09:52:23PM +0100, David Caro wrote:
> Hi everyone!
> 
> Lately I've had a hard time to properly review some patches containing shell
> scripts to manage our infrastructure because there's no guidelines. So I created
> a wiki page with a proposal [1]. It's made up as a mix of some already existing
> guidelines.
> 
> The reason to wrote a bash style guide and not a shell stile guide is because I
> think that bash is widely adopted (default GNU shell) and provides enough
> advantages to sacrifice some portability. I think that most of our maintenance
> and management scripts will never be run on non-GNU OSes.

What are the advantages in your opinion? I like the $() construct and
local variables. Associative arrays can come up handy.

> 
> POSIX compliance should be only used when really needed, for example, scripts to
> build a specific project, that might be run on non-GNU based systems in the far
> future.

I have the opposite sentiment - diversions from the standard should be
kept small and well-justified.

> 
> This thread is to start a discussion about it so please, share your opinions and
> concerns (and proposals).
> 
> 
> [1] http://www.ovirt.org/Bash_style_guide

Could you detail where [1] is different from the
http://wiki.bash-hackers.org/scripting/style that it cites?

BTW, it's missing the most important rule, that can turn the shell into
a programming language: the -e option. Not using it is basically
equivalent to wrapping every python line within its own try-except-pass
block.



More information about the Infra mailing list