Змінні linux, блог любителя експериментів

Змінні linux, блог любителя експериментів
Привіт, читачам мого блогу. Нещодавно дізнався багато чого про змінних в інтерпретаторі bash. Сьогодні хочу вам про це розповісти.

Хоча, вищесказане про відсутність типу змінної можна оскаржити, бо змінні в bash діляться на Ключові змінні (їх же називаю ще - глобальними, стандартними, змінні середовища або внутрішніми) і призначені для користувача (які визначені користувачем під час роботи). При цьому, користувач може переводить свою призначену для користувача змінну в глобальну, за допомогою команди export. Про решту командах управління змінним можна почитати тут.

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

змінні середовища

Давайте поговоримо про змінних середовища. Дані змінні, задані в файлах /etc/.profile,

/.bash_profile і не започатковано при завантаженні, або при виконанні команди ". файл_ініціалізаціі". Зазвичай, основні значення змінних середовища наступні:

У змінній $ BASH міститься повний шлях до виконуваного файлу командної оболонки Bash.

У змінну $ BASH_VERSION записується версія Bash.

Змінна, яка зберігає шляху пошуку каталогу. (Використовується при введенні команди cd імя_каталога без слеша)

містить список каталогів для пошуку файлів класів Java і архівів Java.

домашній каталог поточного користувача.

У змінній $ HOSTNAME зберігається ім'я комп'ютера.

кількість подій, що зберігаються в історії за 1 сеанс

Розташування файлу історії подій

кількість подій, що зберігаються в історії між сеансами

змінна зберігає символи, які є роздільниками команд і параметрів. (За замовчуванням - пробіл, табуляція і новий рядок)

поточна установка локалізації, яка дозволяє налаштувати командну оболонку для використання в різних країнах і на різних мовах.

У змінній $ OSTYPE міститься опис операційної системи.

список каталогів для пошуку команд і додатків, коли повний шлях до файлу не заданий.

PS1 використовується як основна рядок запрошення. (Те саме [root @ proxy

PS2 використовується як вторинна рядок запрошення.

Ця команда повинна бути виконана до відображення рядка запрошення Bash.

повний шлях до поточного робочого каталогу.

повний шлях до поточної командній оболонці.

У змінній $ USER міститься ім'я поточного користувача.

змінні користувача

Присвоєння значення змінної

Змінні з'являються, як тільки користувач "оголосить" дану змінну, тобто привласнить змінною якесь значення:

Дії над змінними

Як уже зазначалося, змінної можна привласнити значення. Крім цього дії, можливо проводити наступні дії:

Особливі змінні (Позиційні змінні)

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

З наведеного скрипта видно, що:

зберігає ім'я команди, яка запустила сценарій

змінні зберігають 1, 2, 3. n позицію аргументів команди

зберігає кількість аргументів команди

зберігає значення всіх аргументів командного рядка через пробіл

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

зберігає PID запущеного сценарію (процесу)

зберігає значення PID останнього процесу, запущеного в тлі

Статус виходу запущеної останньої програми. Він так само називається кодом умови, кодом повернення. За угодою, нульове значення статуси завершення відповідає значенню false і позначає невдале завершення процесу. Код виходу рівний 0 відповідає true і позначає успішне завершення програми. (В нашому прикладі ls display_ завершилося з помилкою і кодом виходу 2, тому що файлу або каталогу display_ не існує)

Дії над змінними 2

Хочу доповнити можливі дії над змінним: зрушення і ініціалізація змінних. Знову ж, простіше буде зрозуміти дані дії на практиці:

Як видно, команда shift "зрушує" позиційні параметри, в результаті чого параметри "зсуваються" на одну позицію вліво.

Колишній аргумент $ 1 втрачається, але аргумент $ 0 (ім'я файлу сценарію) залишається без змін.

Команда set встановлює позиційні змінні на основі переданих їй аргументів, розділених пробілами. Відповідно, команді set можливо передати у вигляді аргументів і висновок будь-якої команди в вигляді set $ (command). Параметри команди set можна подивитися тут.

P.S. Забув вказати на такий момент.Кроме використання посилання на змінну в форматі $ ім'я_змінної, можливий і такий синтаксис: $. Даний синтаксис дозволяє об'єднати змінну з іншим текстом. приклад:

Як видно в прикладі, при спробі вивести значення змінної $ var10ander виводиться порожній рядок, і правильно, тому що такої змінної немає. при укладанні змінної у фігурні дужки - значення змінної об'єднується з наступним текстом.

На сьогодні це все. Думаю уявлення про те, як працюють змінні в bash, я виклав зрозуміло. Бажаю вам побільше практики!

З повагою, Mc.Sim!

Схожі статті