Вы уже имеете некоторый опыт работы с командной строкой Linux. Вы умеете исполнять базовые команды и их последовательности. Пришло время автоматизировать повседневные процессы, перейдя от ручного исполнения команд к использованию скриптов.
Сегодня мы начинаем новую серию статей, посвященных тому, как создать bash скрипт в linux. Мы последовательно рассмотрим основные принципы и элементы скриптов от простых к более комплексным.
Зачем использовать bash скрипты?
Автоматизация задач: Скрипты позволяют выполнять рутинные операции автоматически, например, копировать файлы или запускать программы, чтобы не делать это вручную каждый раз.
Экономия времени: Вместо повторяющихся ручных действий вы запускаете один скрипт — и всё делается быстро и без ошибок.
Обеспечение повторяемости: Скрипты позволяют делать одни и те же действия одинаково каждый раз, что важно для надежности и качества работы.
Упрощение сложных процессов: Можно объединить несколько команд в один скрипт, чтобы запустить сложную последовательность действий одним кликом или командой.
Администрирование системы: Скрипты помогают системным администраторам быстро настраивать и контролировать работу серверов и компьютеров.
Первая строка, первый скрипт.
Как любое путешествие начинается с первого шага, так и любой скрипт начинается с первой строки. Только в случае со скриптом, первая строка имеет фактическое значение, а не только символическое как начало пути.
Шаг 1: Зададим первую строку
Прежде чем начать писать наш первый скрипт, выполним простую команду:
[root@waky bash_practice]# echo $SHELL
/bin/bash
[root@waky bash_practice]#
Мы вывели значение системной переменной SHELL, в которой записан обработчик по умолчанию. В нашем случае, как и в большинстве современных Linux дистрибутивах это /bin/bash.
Bash (Bourne-Again SHell) — это мощная командная оболочка (shell) и язык сценариев для UNIX-подобных систем (Linux, macOS), позволяющая пользователям взаимодействовать с ОС через командную строку, а также автоматизировать задачи, создавая скрипты с переменными, циклами, условиями и функциями.
В системе могут присутствовать разные командные оболочки. И Bash может оказаться не первой из них. Поэтому, если мы пишем Bash скрипт, важно убедиться, что наш скрипт будет исполнен соответствующим обработчиком.
С помощью текстового редактора создадим файл first_script.sh и запишем в него первую строку:
#!/bin/bash
Таким способом мы указываем оболочку, которая должна обработать данный скрипт. Использование расширений в Linux является номинальным, не обязательно называть файлы скриптов с .sh на конце, они и без этого будут работать. Однако, это хорошая практика, помогающая пользователям отличить файлы скриптов от других файлов.
Шаг 2: Пишем первый скрипт
По сути, bash скрипт — это последовательность команд, перечисленных в файле, которые обработчик должен выполнить. Дополним наш скрипт несколькими простыми командами, в результате файл примет вид:
#!/bin/bash
echo "Timezone details:"
timedatectl
echo "Date and time details:"
date
В скрипте мы прописали две простые команды связанные с отображением даты и времени и сопроводили их двумя сообщениями.
Сохраняем и закрываем файл. Теперь есть два способа запуска данного скрипта.
Первый — передать имя файла обработчику непосредственно:
[root@waky bash_practice]# bash first_script.sh
Timezone details:
Local time: Sun 2025-12-21 05:30:52 MSK
Universal time: Sun 2025-12-21 02:30:52 UTC
RTC time: Sun 2025-12-21 02:30:52
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Date and time details:
Sun Dec 21 05:30:52 AM MSK 2025
[root@waky bash_practice]#
Второй — сделать файл исполняемым:
[root@waky bash_practice]# chmod +x first_script.sh
[root@waky bash_practice]#
И запустить скрипт по имени, обратите внимание, что для запуска локального скрипта используется указание на текущую директорию ./, без этого обработчик будет искать название среди системных команд и скриптов:
[root@waky bash_practice]# ./first_script.sh
Timezone details:
Local time: Sun 2025-12-21 05:32:43 MSK
Universal time: Sun 2025-12-21 02:32:43 UTC
RTC time: Sun 2025-12-21 02:32:43
Time zone: Europe/Moscow (MSK, +0300)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Date and time details:
Sun Dec 21 05:32:43 AM MSK 2025
[root@waky bash_practice]#
В обоих случаях наш скрипт успешно отработал.
Итоги:
Мы создали наш первый скрипт, и хотя он пока малополезен, на его примере мы разобрались, как запускать скрипты. Мы узнали назначение первой строки скрипта. И даже если bash является оболочкой по умолчанию, наличие этой строки, будет не обязательно, но желательно.
Следующий урок: bash скрипты для начинающих — урок №2: Создание переменных.