Чи є умови іменування змінних у скриптах оболонки?


113

Більшість мов мають умови іменування змінних. Найпоширеніший стиль, який я бачу в скриптах оболонки, - це MY_VARIABLE=foo. Це умова чи це лише глобальні змінні? Що щодо змінних, локальних для сценарію?


1
Єдине, за яким я знаю, якого слід дотримуватися всім, - всі великі імена мають бути зарезервовані для оболонки. Не використовуйте їх , щоб уникнути випадкового затирання що - то важливе , як PATHабо HOMEчи що - небудь ще оболонка може зарезервувати в майбутньому.
— jw013

3
Насправді, всі великі імена зазвичай використовуються для змінних середовища. Деякі змінні (наприклад, PATH) інтерпретуються оболонкою, тоді як інші (як LANGUAGE або PRINTER) можуть бути інтерпретовані іншими програмами, але нічого іншого особливого в них немає.
— jlp

"змінні середовища" - це справді власне ім'я, я включу його у свою відповідь.
— джиппі

Цей посібник Google, хоча не є авторитетним, має хороші пропозиції: google.github.io/styleguide/shell.xml . Він пропонує дотримуватися всіх обмежень лише для констант та експортованих змінних, а змія - для всього іншого. Особисто мені подобається кейс верблюда для моїх глобальних, оскільки ніхто більше не рекомендує його, що знижує ймовірність назвати зіткнення. Плюс мені подобається те, як вони читають.
— Бінарний Філі

Відповіді:


111

Змінні середовища або змінні оболонки, які вводяться операційною системою або сценаріями запуску оболонки тощо, зазвичай є все CAPITALS.

Щоб ваші власні змінні не конфліктували з цими змінними, це корисна практика lower case.


32
lower_caseпідкреслення розділено або camelCase?
— Гарретт Холл

3
@GarrettHall Це повністю залежить від вас. Як тільки ви виберете одну паличку з нею. Послідовність важливіша, ніж власне вибір.
— jw013

2
питання смаку? Мені особисто подобається C-стиль, camelCaseоскільки він коротший і не використовує потворного підкреслення. Смак, стиль, ...
— jippie

19
питання смаку? Мені особисто подобається виділення підкреслення, легше читати.
— janos

4
Для повноти картини , змінні оточення не є єдиною категорією імен змінних , зазвичай все прописні оболонки - це правило поширюється також на вбудовані команди (наприклад PWD, PS4чи BASH_SOURCE).
— Чарльз Даффі

62

Так, існує повний режим стилів коду для bash, включаючи імена змінних. Наприклад, ось керівництво Google щодо стилю оболонки Google .

Як підсумок конкретно імен змінних:

Імена змінних : Малі регістри, з підкресленнями окремих слів. Наприклад:my_variable_name

Імена змінних констант і середовища : Усі знаки, розділені підкресленнями, оголошені у верхній частині файлу. Наприклад:MY_CONSTANT


1
Наведене вище посилання тепер мертве, але я вважаю, що це те, з чим воно пов’язане: google.github.io/styleguide/shell.xml
— Сем

1
@Sam, дякую. Так, що це. Пора Google перестала використовувати googlecode.com lol
— Anonsage,

1
Як ви завжди робити те , що говорить Google? ;-)
— tim.rohrer

1
Ця умова є лише Google для власних проектів з відкритим кодом: хоча вони можуть бути дуже хорошими правилами, вони не можуть застосовуватися до всіх проектів.
— smonff

1

Підкреслення окремих слів, здається, є найкращим способом.
У мене є кілька причин, коли я віддаю перевагу зміїному колу перед camelCase, коли я вільний у виборі:

  1. Гнучка: Ви можете використовувати великі та малі регістри (наприклад, MY_CONSTANTта my_variable);
  2. Послідовно: цифри можна розділити, щоб зробити число більш читабельним (наприклад 1_000_000_000), і ця функція підтримується у багатьох мовах програмування;
  3. Загальне: загальне в точці, де регекс \wобробляє підкреслення, такі як символи слова та цифри ( [a-zA-Z0-9_]).
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.