¿Existen convenciones de nomenclatura para las variables en los scripts de shell?

¿Existen convenciones de nomenclatura para las variables en los scripts de shell?

La mayoría de los lenguajes tienen convenciones de nomenclatura para las variables; el estilo más común que veo en los scripts de shell es MY_VARIABLE=foo. ¿Es esta la convención o es sólo para variables globales? ¿Qué pasa con las variables locales del script?

Respuesta1

Las variables de entorno o variables de shell introducidas por el sistema operativo, los scripts de inicio del shell o el propio shell, etc., suelen estar todas en CAPITALS1 .

Para evitar que sus variables entren en conflicto con estas variables, es una buena práctica utilizar lower_casenombres de variables.


1 Una excepción notable que puede valer la pena conocer es la pathmatriz, utilizada por el zshshell. Es lo mismo que la PATHvariable común pero representada como una matriz.

Respuesta2

Sí, existen convenciones de estilo de código completas para bash, incluidos los nombres de variables. Por ejemplo, aquí está GoogleGuía de estilo de concha.

Como resumen de los nombres de las variables específicamente:

Nombres de variables: Minúsculas, con guiones bajos para separar palabras. Ex:my_variable_name

ConstantesyNombres de variables de entorno: Todo en mayúsculas, separado por guiones bajos, declarado en la parte superior del archivo. Ex:MY_CONSTANT

Respuesta3

Los guiones bajos para separar palabras parecen ser la mejor manera de hacerlo.
Tengo algunas razones para preferir Snake_case a camelCase cuando tengo la libertad de elegir:

  1. Flexible: Puede utilizar mayúsculas y minúsculas (por ejemplo, MY_CONSTANTy my_variable);
  2. Consistente: los dígitos se pueden separar para que el número sea más legible (p. ej. 1_000_000_000) y esta característica es compatible con muchos lenguajes de programación;
  3. Común: común en el punto en que la expresión regular \wmaneja guiones bajos como caracteres de palabras y números ( [a-zA-Z0-9_]).

información relacionada