Перейти до змісту

Bash - перший скрипт

У цьому розділі ви дізнаєтесь, як написати свій перший скрипт у bash.


Цілі: В цьому розділі ви дізнаєтеся як:

✔ Написати свій перший сценарій у bash;
✔ Виконати свій перший сценарій;
✔ Вказати, яку оболонку використовувати з так званим shebang;

🏁 linux, script, bash

Знання: ⭐
Складність: ⭐

Час для читання: 10 хвилин


Мій перший сценарій

Щоб почати писати сценарій оболонки, зручно скористатися текстовим редактором, який підтримує підсвічування синтаксису.

Наприклад, vim є хорошим інструментом для цього.

Назва сценарію повинна відповідати деяким правилам:

  • відсутні назви існуючих команд;
  • лише буквено-цифрові символи, тобто без наголосів і пробілів;
  • розширення .sh, щоб вказати, що це сценарій оболонки.

Примітка

Автор використовує «$» у цих уроках для позначення командного рядка користувача.

#!/usr/bin/env bash
#
# Author : Rocky Documentation Team
# Date: March 2022
# Version 1.0.0: Displays the text "Hello world!"
#

# Displays a text on the screen :
echo "Hello world!"

Щоб мати можливість запустити цей скрипт, як аргумент bash:

$ bash hello-world.sh
Hello world !

Або, простіше, після надання йому права на виконання:

$ chmod u+x ./hello-world.sh
$ ./hello-world.sh
Hello world !

Примітка

Щоб виконати сценарій, його потрібно викликати з ./ перед його іменем, коли ви перебуваєте в каталозі, де знаходиться сценарій. Якщо немає в цьому каталозі, вам потрібно буде викликати його з повним шляхом до сценарію, АБО розмістити його в каталозі, який знаходиться у вашій змінній середовища PATH: (Приклади: /usr/local/sbin, /usr/ local/bin тощо) Інтерпретатор відмовиться виконувати сценарій, наявний у поточному каталозі, без вказівки шляху (тут із ./ перед ним).

Команду chmod слід передати тільки один раз у щойно створеному сценарії.

Перший рядок, який потрібно написати в будь-якому сценарії, - це вказати назву двійкового файлу оболонки, який буде використано для його виконання. Якщо ви бажаєте використовувати оболонку ksh або інтерпретовану мову python, замініть рядок:

#!/usr/bin/env bash

на:

#!/usr/bin/env ksh

або на:

#!/usr/bin/env python

Цей перший рядок називається shebang. Він починається із символів #!, за якими йде шлях до двійкового інтерпретатора команди, який потрібно використовувати.

Про shebang

Можливо, ви зустрічали «shebang» у сценарії, який ви дивилися, який не містить розділу «env», а просто містить інтерпретатор для використання. (Приклад: #!/bin/bash). Авторський спосіб вважається рекомендованим і правильним способом оформлення «shebang».

Чому рекомендовано авторський метод? Тому що це підвищує портативність сценарію. Якщо з якоїсь причини інтерпретатор жив у зовсім іншому каталозі, інтерпретатор все одно буде знайдений, якщо ви використаєте метод автора.

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

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

Коментарі можна розміщувати в окремому рядку або в кінці рядка, що містить команду.

Приклад:

# This program displays the date
date # This line is the line that displays the date!

Author: Antoine Le Morvan

Contributors: Steven Spencer, Ganna Zhyrnova