Correct Bash and shell script variable capitalization

前端 未结 7 2029
太阳男子
太阳男子 2020-11-21 22:54

I run across many shell scripts with variables in all caps, and I\'ve always thought that there is a severe misunderstanding with that. My understanding is that, by convent

7条回答
  •  日久生厌
    2020-11-21 23:28

    Any naming conventions followed consistently will always help. Here are a few helpful tips for shell variable naming:

    • Use all caps and underscores for exported variables and constants, especially when they are shared across multiple scripts or processes. Use a common prefix whenever applicable so that related variables stand out and won't clash with Bash internal variables which are all upper case.

      Examples:

      • Exported variables with a common prefix: JOB_HOME JOB_LOG JOB_TEMP JOB_RUN_CONTROL
      • Constants: LOG_DEBUG LOG_INFO LOG_ERROR STATUS_OK STATUS_ERROR STATUS_WARNING
    • Use "snake case" (all lowercase and underscores) for all variables that are scoped to a single script or a block.

      Examples: input_file first_value max_amount num_errors

      Use mixed case when local variable has some relationship with an environment variable, like: old_IFS old_HOME

    • Use a leading underscore for "private" variables and functions. This is especially relevant if you ever write a shell library where functions within a library file or across files need to share variables, without ever clashing with anything that might be similarly named in the main code.

      Examples: _debug _debug_level _current_log_file

    • Avoid camel case. This will minimize the bugs caused by case typos. Remember, shell variables are case sensitive.

      Examples: inputArray thisLooksBAD, numRecordsProcessed, veryInconsistent_style


    See also:

    • The Open Group Base Specifications Issue 7 - Environment Variables

提交回复
热议问题