Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LINUX (Лаб.1,2,3,4,5,6).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
430.59 Кб
Скачать
      1. Використання змінних оточення

Змінні оболонки відіграють важливу роль для налаштування та керування роботою ОС. Оболонка має інтерпретатор програмної мови, в якій важливу роль відіграють змінні оболонки.

Змінні оболоки зберігаються системою у вигляді текстових рядків. Якщо дві змінні розташовані у команді поряд? то відповідні їм рядки символіів об”єднуються. Наприклад. якщо є дві змінні X = hello та Y= world, то вираз $X$Y буде інтерпретуватися системою як helloworld. Команда

echo $Х $Y

виведе на екран hello world

Якщо виконання підстановки є неоднозначним для системи, вона обирає найпростіший шлях. Наприклад $XY буде інтерпретовано як helloY. Водночас, якщо існує змінна XY, то система підставить її значення. У сумнівних випадках треба використовувати дужки для завдання порядку підстановки. Наприклад, вираз $(X)Y буде вказувати системі. що спочатку треба підставити значення змінної X, а потім приєднати Y.

      1. Підстановка результата виконання команди

Після підстановки значень змінних оболонка ще раз переглядає рядок у пошуку команд. включених як параметр у командний рядок (command substitution). Якщо таку команду знайдено, то команда-параметр виконується і її результат проставляється у командний рядок замість команди-параметра.

command-1 parameter `command-2`

Треба бути уважним при використанні символів подвійних лапок, апострофа (одиночних лапок) та зворотніх лапок.

Детальніше правила використання лапок наведені у таблиці.

Символ

Значення

Лапки відключають аналіз універсальних символів та виразів у назвах файлів та виділення параметрів. Однак, підстановка значень змінних та виконання команд відбувається

'

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

`

Рядок символів у зворотніх лапках сприймається к одна команда. Ця команда виконується, її стандартний вивід підставляється у первинну команду.

Розглянемо наступний командний рядок:

echo Today\'s date and time are `date`

Результатом його виконання буде:

Today's date and time are Mon May 18 14:35:09 EST 1994

Зверніть увагу, що у тексті команди перед апострофом поставлено символ \. Майже кожен не алфавітно-цифровий символ має спеціальне значення для оболонки. Для того, щоб виключити інтерпретацію символа оболонкою, треба перед символом використати знак \. Якщо в тексті зустрічається сам знак \. то замість нього потрібно поставити \\.

      1. Групи команд та породжені оболонки

Звичайно кожна команда завершується символом <Enter>. В деяких випадках, однак вигідно розмістити декілька команд в одному рядку. При цьому команди розділюються символами ;

command-1; command-2, command-3

Оболонка сприйме символ ; як символ нового рядка

Якщо потрібно переспрямувати вивід відразу для декількох команд, можна сформувати групу команд у такому форматі:

{command-1,command-2} > output-file

Вивід групи команд може бути переспрямовано у програмний канал:

{command-1,command-2} | command-3

Це означає, що спочатку виконується command-1 і її вивід надходить на вхід command-3, а потім – виконується command-2 і її вивід також надходить на вхід command-3.

Команди, що виконуються облонкою таким чином можуть змінювати змінні оточення та біжучий каталог. Для того, щоб цього не відбулося можна виконати у породженій оболонці (subshell), залишаючи усі налаштування біжучої оболонки без змін. Для цього замість фігурних дужок потрібно використати звичайні:

(command-1,command-2) | command-3

При цьому command-1 та command-2 будуть виконані в окремій оболонці а їх вивід (вже у біжучій оболонці) буде спрямовано на вхід command-3

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]