Мета статті - познайомити ближче з bash, розповісти про синтаксис, основні прийоми та фішки мови, для того щоб навіть звичайний користувач зміг швиденько написати простий скрипт для виконання щоденної (-недельной, -місячний) рутинної роботи або, скажімо, «на коліні» наваять скриптик для бекапа директорії.
BASH - Bourne-Again SHell (що може перекладається як «оновлений йшов», або «Знову йшов Борна (творець sh)»), найпопулярніший командний інтерпретатор в юніксоподобних системах, особливо в GNU / Linux. Нижче приведу ряд вбудованих команд, які ми будемо використовувати для створення своїх скриптів.
break вихід з циклу for, while або until
continue виконання наступної ітерації циклу for, while або until
echo висновок аргументів, розділених пробілами, на стандартний пристрій виводу
exit вихід з оболонки
export зазначає аргументи як змінні для передачі в дочірні процеси в середовищі
hash запам'ятовує повні імена шляхів команд, вказаних в якості аргументів, щоб не шукати їх при наступному зверненні
kill посилає сигнал завершення процесу
pwd виводить поточний робочий каталог
read читає рядок з введення оболонки і використовує її для присвоєння значень зазначеним змінним. \
return змушує функцію оболонки вийти з вказаним значенням
shift переміщує позиційні параметри наліво
test обчислює умовний вираз
times виводить ім'я користувача і системний час, використане оболонкою і її нащадками
trap вказує команди, які повинні виконуватися при отриманні оболонкою сигналу
unset викликає знищення змінних оболонки
wait чекає виходу з дочірнього процесу і повідомляє вихідний стан.
І звичайно ж крім вбудованих команд ми будемо використовувати цілу купу зовнішніх, окремих команд-програм, з якими ми познайомимося вже в процесі
Що необхідно знати з самого початку
1. Будь-який bash-скрипт повинен починатися з рядка:
в цьому рядку після #! вказується шлях до bash-інтерпретатора, тому якщо він у вас встановлений в іншому місці (де, ви можете дізнатися набравши whereis bash) поміняйте її на ваш шлях.
2. Коментарі починаються з символу # (крім першого рядка).
3. В bash змінні не мають типу (про них мова піде нижче)
Змінні і параметри скрипта
Наведу як приклад невеликий приклад, який ми розберемо:
Результат виконання скрипта:
Ви запустили скрипт з ім'ям ./test.sh і параметром qwerty
Ви запустили скрипт з ім'ям $ script_name і параметром $ parametr1
Після того як ми познайомилися як використовувати змінні і передавати скрипту параметри, час познайомитися з зарезервованими змінними:
Умовні оператори, думаю, знайомі практично кожному, хто хоч раз намагався на щось писати програми. В bash умови пишуться слід. чином (як зазвичай на прикладі):
Результат виконання скрипта:
Таким чином оператогр умови мають такий вигляд:
if [[ «щось» <оператор логического сравнения «с чем-то»]]
then
якась агресивна дія, якщо порівняння виявилась успішною
else
дію якщо порівняння виконано не успішно
fi
У деяких випадках оператор else може бути опущений.
Умови. множинний вибір
Якщо необхідно порівнювати какао-то одну змінну з великою кількістю параметрів, то доцільніше використовувати оператор case.
-z # рядок порожня
-n # рядок не порожній
=, (==) # рядки рівні
!= # Рядки нерівні
-eq # одно
-ne # нерівно
-lt, (<) # меньше
-le, (<=) # меньше или равно
-gt, (>) # більше
-ge, (> =) # більше або дорівнює
. # Заперечення логічного виразу
-a, () # логічне «І»
-o, (//) # логічне «АБО»
З основами мови і умовами ми розібралися,