Програмування на shell, розробка скриптів - сайт програміста

Shell-програмування. Написання скриптів для Linux-shell

Загальні положення.

Змінні, введення і виведення даних.

Для завдання змінних використовується оператор прісваеванія "=". Синтаксис наступний:

Зауважу, що на відміну від мов perl і php, між знаком "=" і іншими параметрами не можна ставити пробел.В цьому випадку інтерпретатор видасть ошібку.Чтоби звернеться до заданої змінної, треба викликати її поставивши перед нею знак $ .Удаліть змінну можна за допомогою оператора unset. Оператор Echo просто виводить рядок (або змінну), що йде після нього:

В даний приклад також можна додати одинарні або подвійні лапки, від цього результат роботи програми не зміниться. Але не варто використовувати зворотні лапки, т.к.еті символи використовуються для виконання команд:

Оператор read присваевает значення переменной.Вот приклад, який просить ввести змінну var, зчитує її а потім виводить.

Агрумент командного рядка.

Як і у всіх консольних програмах, в shell-сценарій можна передавати аргументи з командного строкі.Переменние $ 1 .. $ 9 відповідають параметрам, переданим з командного рядка сценарію.Переменная $ 0 містить ім'я інтерпретується файлу. $ # - містить кількість переданих аргументів. $ * І [email protected] містять всі аргументи, але в [email protected] всі аргументи виділені лапками. Напишемо скрипт, який виводить 2 аргументу командного рядка і ім'я виконуваного файла.Запуск скрипта. /script.sh 1 2

Арифметичні операції.

Арифметичні операції проводяться з використанням оператора let. операції:

Синтаксис арифметичних операцій в Shell:

Оператор test або # 091; # 093 ;.

Дані оператори призначені для виконання порівнянь двох значень. Якщо порівняння успішно-оператор повертає 0, інакше 1.Код завершення останньої виконаної команди зберігається в спеціальній змінній $ ?.

Синтаксис оператора test:

Нижче наведені всі опції оператора test (або # 091; # 093;):

Порівняння цілих чисел:

Нижче описаний синтаксис всіх умовних операторів, з прикладами.

1) if <команда> then <команда> fi

Приклад умови if. then:

Результат роботи, при переданому параметрі рівному 10:

2) if <команда> then <команда> else <команда> fi

Приклад if. then. else:

Результат роботи, при переданому параметрі рівному 10:

Результат роботи, при переданому параметрі рівному 7:

3) if <команда> then <команда> elif <команда> else <команда> fi

Приклад if. then. elif. else:

Результат роботи, при переданому параметрі рівному 10:

Результат роботи, при переданому параметрі рівному 9:

Результат роботи, при переданому параметрі рівному 8:

4) case <строка> in <шаблон>) <команды> ;; *) <команды> ;; esac

Case-конструкція дозволяє вибирати один з декількох альтернативних варіантів.

Результат роботи, при переданому параметрі рівному 1:

Результат роботи, при переданому параметрі рівному 2:

Результат роботи, при переданому параметрі рівному 10:

1) while <условие> do <команды> done

Оператор мови shell-програмування while виконує команди, поки умова истино.
приклад:

2) until <условие> do <команды> done

Оператор until виконує команди, поки умова помилкова.
приклад:

3) for <переменная> do <команды> done

Цикл for - виконує команди для кожного параметра, який був переданий сценарієм в командному рядку.
приклад:

Результат роботи програми, з параметрами 1 2 3 4 5:

4) for <переменная> in <строка>
do
<команды>
done

Ця конструкція відрізняється від звичайного for тим, що параметри беруться не з командного рядка, а з рядка після оператора in.

5) select <строка> in <перечень элементов>
do
<команды>
done

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

Жоден ремісник, який прагне до вершин своєї професії, не прийме негідних інструментів. І жоден виробник, який цінує якість роботи, що не буде просити ремісника прийняти їх.