Skip to content

Rules for Naming variables

Naming variables in shell scripting follows a specific set of rules and best practices to ensure proper functionality and readability. Improper naming can lead to errors or unexpected behavior. Here’s a comprehensive discussion of the rules and guidelines for naming shell variables:


Rules for Naming Variables

  1. Start with a Letter or Underscore (_):
    1. A variable name must begin with a letter (a-z, A-Z) or an underscore (_).
    1. Numbers are not allowed as the first character.
    1. Valid Examples:

myVar=10

_temp=5

  • Invalid Examples:

1var=10   # Error: Starts with a number

  • Use Only Alphanumeric Characters and Underscores:
    • Variable names can include letters, numbers, and underscores (_).
    • Special characters such as !, @, #, -, or space are not allowed.
    • Valid Example:

my_variable_1=20

  • Invalid Example:

my-variable=20  # Error: Contains `-`

my variable=20  # Error: Contains space

  • Case Sensitivity:
    • Variable names are case-sensitive.
    • For example, myVar and MYVAR are treated as two different variables.
    • Example:

myVar=10

MYVAR=20

echo $myVar  # Outputs: 10

echo $MYVAR  # Outputs: 20

  • Avoid Using Shell Reserved Words:
    • Do not use reserved words or keywords (e.g., if, for, while, do, done, etc.) as variable names.
    • Invalid Example:

if=10  # Error: `if` is a reserved word

  • Avoid Overwriting Special Variables:
    • Special variables like $HOME, $PATH, $USER, etc., should not be redefined, as they are critical to the shell environment.
    • Bad Practice Example:

PATH=/my/new/path  # May cause commands to fail

  • No Spaces Around =:
    • The assignment operator (=) must not have spaces on either side.
    • Valid Example:

myVar=10

  • Invalid Example:

myVar = 10  # Error: Spaces around `=`


Best Practices for Naming Variables

  1. Use Descriptive Names:
    1. Choose meaningful names to make your script more readable and maintainable.
    1. Example:

user_name=”John Doe”

file_count=15

  • Use Uppercase for Environment Variables:
    • By convention, environment variables are written in uppercase.
    • Example:

export CONFIG_PATH=/etc/config

  • Use Lowercase for Local Variables:
    • To avoid conflicts with environment variables, use lowercase for script-specific variables.
    • Example:

total_sum=100

  • Use Underscores to Separate Words:
    • Instead of spaces or camelCase, use underscores to improve readability.
    • Example:

first_name=”Alice”

  • Avoid Single-Letter Variable Names:
    • Unless used in loops or as temporary variables, avoid single-letter names as they are less descriptive.
    • Bad Example:

x=10


Examples of Valid and Invalid Variable Names

Valid Names

user_name=”Alice”

_age=25

fileCount=10

MAX_LIMIT=100

Invalid Names

123user=”John”       # Error: Starts with a number

my-variable=5        # Error: Contains `-`

my variable=10       # Error: Contains space

for=100              # Error: Reserved word


Summary

When naming variables in shell scripting:

  • Follow the rules strictly to avoid syntax errors.
  • Use meaningful, descriptive names to improve script clarity.
  • Follow conventions to distinguish between local and environment variables.

Adhering to these guidelines ensures your scripts are readable, maintainable, and less prone to errors.