Хоча, вищесказане про відсутність типу змінної можна оскаржити, бо змінні в 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!