Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Програмування в bash




Як уже зазначалось, командні інтерпретатори володіють деякими властивостями мов програмування, які дозволяють створювати досить складні програми. Така програма об'єднує звичайно ряд команд UNIX, направлених на виконання конкретної задачі. Інструкції, з яких складається програма, вводяться в командний файл (скрипт, сценарій), який підлягає виконанню. Створити такий файл можна з допомогою звичайного текстового редактора.

6.1.8 Оператор "документ тут"

Оператор "документ тут" (<<) дозволяє використовувати рядки командного файлу в якості вхідних даних (вхідного потоку) для якої-небудь команди. Цим усувається необхідність читати вхідні дані з зовнішнього джерела, наприклад з файлу або каналу. Після оператора << на тому ж рядку слід помістити обмежувач потоку, а з наступного рядка - самі дані для вхідного потоку. Наприклад:

$ cat << zzz

> This line will be printed

>zzz

This line will be printed

$

6.1.9 Виконання наступної команди за умовою

Іноді в процесі роботи необхідно виконувати умовне розгалуження програми, або послідовності дій. В оболонці Сі подвійний амперсанд "&&" еквівалентний логічному "І". Команда, що стоїть після "&&", буде виконуватися тільки в тому випадку, якщо попередня команда завершилась успішно (код виходу 0). Наприклад:

% cp hello.c hello.bak && rm hello.c

Файл hello.c не буде видалено, якщо сталася помилка при копіюванні, тобто якщо команда cp завершилась невдало.

"||" - еквівалент логічного "АБО". Команда, що стоїть після "||", буде виконуватися тільки в тому випадку, якщо попередня команда завершилась невдало (код виходу відрізняється від 0). Наприклад:

% cp hello.c hello.bak || echo Copy file error

Якщо пройшла помилка при копіюванні, то буде надруковано повідомлення Copy file error.

6.1.10 Заміна оболонки новою програмою - команда exec

Команда exec замінює поточний процес (командний файл, що виконується, або оболонку) новою задачею, ім'я якої передається в якості параметра. Команда часто використовується при написанні

скриптів для організації процесів, що повторюються.

6.1.11 Визначення і розрахунок змінних

Командний інтерпретатор bash володіє можливостями роботи зі змінними. Імена змінних не обмежені по довжині і можуть містити великі і малі букви латинського алфавіту, цифри і знак підкреслювання. Ім'я змінної не може починатися с цифри.

Значення змінної присвоюється за допомогою оператора присвоювання (=). Оператор присвоювання пропусками не відділяється. Змінній може бути присвоєна яка завгодно сукупність символів. Наприклад:

$ greeting="How do you do?"

Значення змінних часто використовуються як аргументи команд. Розрахунок (підстановка) значення змінної відбувається за допомогою оператора $. Результатом розрахунку є набір символів. Цей набір замінює ім'я змінної в командному рядку. Наприклад:

$ echo $greeting

How do you do?

Список всіх визначених змінних можна отримати по команді set. Якщо яка-небудь змінна більше не потрібна, її можна видалити командою unset.

6.1.12 Ввід і вивід даних в сценаріях

Для виводу даних в сценарії можна використовувати команду echo, а для зчитування вхідної інформації в змінні - команду read. Фактично команда read читає рядок зі стандартного вводу. Все, що посилається на стандартний ввід з клавіатури (файлу або каналу при переадресації) - аж до символу нового рядка - зчитується і присвоюється в якості значення змінної. Наприклад:

$ read greeting

How do you do

$ echo $greeting

How do you do

Крім того, за допомогою конструкції "документ тут" в сценарій можна вводити дані і переадресовувати їх в команду.





Поделиться с друзьями:


Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 461 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Настоящая ответственность бывает только личной. © Фазиль Искандер
==> читать все изречения...

3768 - | 3528 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.