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 створює меню на основі елементів заданого списку, а потім виконує для нього зазначену команду.
приклад:
Жоден ремісник, який прагне до вершин своєї професії, не прийме негідних інструментів. І жоден виробник, який цінує якість роботи, що не буде просити ремісника прийняти їх.