20

In shell scripting, even though I use Java or Python style naming convention, I am still unclear about naming a constant.

Many conventions suggest me to use "capital letter" together with "underscore" for naming a constant e.g. MY_CONSTANT, PI. But in Bash, this may conflict with environment variables.

So, what is the right naming convention for Bash constants?

codeforester
  • 39,467
  • 16
  • 112
  • 140
fronthem
  • 4,011
  • 8
  • 34
  • 55

1 Answers1

22

Together with the question you are linking, there is another related question in Unix & Linux: Are there naming conventions for variables in shell scripts?.

There you can find a couple of good answers:

Variables that are introduced by the operating system or start up scripts etc. are usually all in CAPITALS, these are called 'envrironment variables'.

To prevent your own variables from conflicting with environment variables, it is a good practice to use lower case.

Together with a Shell Style Guide link, where you can find:

Naming Conventions

Function Names

▶ Lower-case, with underscores to separate words. Separate libraries with ::. Parentheses are required after the function name. The keyword function is optional, but must be used consistently throughout a project.

Variable Names

▶ As for function names.

Constants and Environment Variable Names

▶ All caps, separated with underscores, declared at the top of the file.

There is no suggested convention in man bash, just note the "be careful with uppercase" warning.

Rob Bednark
  • 25,981
  • 23
  • 80
  • 125
fedorqui
  • 275,237
  • 103
  • 548
  • 598