Скрипты оболочки · 4 min read · Nov 14, 2025

Скрипты оболочки Часть I: Начало работы с bash-скриптами

Здравствуйте. Это первая часть серии учебников по Linux. При написании этого учебника я предполагаю, что вы абсолютный новичок в создании скриптов Linux и очень хотите учиться. В течение серии уровень будет повышаться, поэтому я уверен, что даже для более опытных пользователей будет что-то новое. Итак, давайте начнем.

Введение

Большинство наших операционных систем, включая Linux, могут поддерживать различные пользовательские интерфейсы (UI). Графический пользовательский интерфейс (GUI) — это удобный настольный интерфейс, который позволяет пользователям щелкать по значкам для запуска приложения. Другой тип интерфейса — это интерфейс командной строки (CLI), который является чисто текстовым и принимает команды от пользователя. Оболочка, интерпретатор команд, считывает команду через CLI и вызывает программу. Большинство операционных систем в настоящее время предоставляют оба интерфейса, включая дистрибутивы Linux.

При использовании оболочки пользователь должен вводить серию команд в терминале. Нет проблем, если пользователь должен выполнить задачу только один раз. Однако, если задача сложная и должна быть выполнена несколько раз, это может стать немного утомительным для пользователя. К счастью, есть способ автоматизировать задачи оболочки. Это можно сделать, написав и запустив скрипты оболочки. Скрипт оболочки — это тип файла, который состоит из серии и последовательности команд, поддерживаемых оболочкой Linux.

Зачем создавать скрипты оболочки?

Скрипт оболочки — это очень полезный инструмент для автоматизации задач в операционных системах Linux. Его также можно использовать для объединения утилит и создания новых команд. Вы можете объединить длинные и повторяющиеся последовательности команд в одну простую команду. Все скрипты могут быть выполнены без необходимости компиляции, поэтому у пользователя будет способ прототипирования команд без проблем.

Я новичок в среде Linux, могу ли я все еще научиться создавать скрипты оболочки?

Конечно! Создание скриптов оболочки не требует сложных знаний о Linux. Достаточно базовых знаний о общих командах в CLI Linux и текстовом редакторе. Если вы абсолютный новичок и не имеете базовых знаний о командной строке Linux, вы можете найти этот учебник полезным.

Создание моего первого скрипта оболочки

Bash (Bourne-Again Shell) — это оболочка по умолчанию в большинстве дистрибутивов Linux и OS X. Это проект с открытым исходным кодом GNU, который был предназначен для замены sh (Bourne Shell), оригинальной Unix-оболочки. Он был разработан Брайаном Фоксом и выпущен в 1989 году.

Вы всегда должны помнить, что каждый скрипт Linux, использующий bash, будет начинаться со следующей строки:

#!/bin/bash

Каждый скрипт Linux начинается со строки shebang (#!). Строка bang указывает полный путь /bin/bash интерпретатора команд, который будет использоваться для выполнения скрипта.

Привет, мир!

Каждый язык программирования начинается с вывода Привет, мир! Мы не будем заканчивать эту традицию и создадим нашу собственную версию этого дублирующего вывода в скриптах Linux.

Чтобы начать создание нашего скрипта, выполните следующие шаги:

Шаг 1: Откройте текстовый редактор. Я буду использовать gedit для этого примера. Чтобы открыть gedit с помощью терминала, нажмите CTRL + ALT + T на клавиатуре и введите gedit. Теперь мы можем начать писать наш скрипт.

Шаг 2: Введите следующую команду в текстовом редакторе:

#!/bin/bash   
 echo "Hello World"

Шаг 3: Теперь сохраните документ с именем файла hello.sh. Обратите внимание, что каждый скрипт будет иметь расширение файла .sh.

Шаг 4: В связи с соображениями безопасности, установленными дистрибутивами Linux, файлы и скрипты по умолчанию не являются исполняемыми. Однако мы можем изменить это для нашего скрипта, используя команду chmod в CLI Linux. Закройте приложение gedit и откройте терминал. Теперь введите следующую команду:

chmod +x hello.sh

Строка выше устанавливает разрешение на выполнение для файла hello.sh. Эта процедура должна выполняться только один раз перед первым запуском скрипта.

Шаг 5: Чтобы запустить скрипт, введите следующую команду в терминале:

./hello.sh

Давайте рассмотрим еще один пример. На этот раз мы добавим отображение некоторой информации о системе, используя команды whoami и date в наш приветственный скрипт.

Откройте hello.sh в нашем текстовом редакторе и отредактируйте наш скрипт, введя:

#!/bin/bash  
 echo "Hello $(whoami) !"  
 echo "The date today is $(date)"

Сохраните изменения, которые мы внесли в скрипт, и запустите скрипт (Шаг 5 в предыдущем примере), введя:

./hello.sh

Вывод скрипта будет:

В предыдущем примере команды whoami и date использовались внутри команды echo. Это только означает, что все утилиты и команды, доступные в командной строке, также могут использоваться в скриптах оболочки.

Генерация вывода с помощью printf

До сих пор мы использовали echo для вывода строк и данных из команд в нашем предыдущем примере. Echo используется для отображения строки текста. Еще одна команда, которую можно использовать для отображения данных, — это команда printf. Команда printf управляет и выводит данные, как функция printf в C.

Ниже приведено резюме общих управляющих символов printf:

Управляющий символИспользование
\”Двойная кавычка
\Обратная косая черта
\bУдаление символа
\cНе производить дальнейший вывод
\eЭскейп
\nНовый абзац
\rВозврат каретки
\tГоризонтальная табуляция
\vВертикальная табуляция

Пример 3: Мы откроем предыдущий hello.sh и изменим все echo на printf и снова запустим скрипт. Обратите внимание на изменения в нашем выводе.

#!/bin/bash  
 printf "Hello $(whoami) !"  
 printf "The date today is $(date)"

Все строки соединены друг с другом, потому что мы не использовали никаких управляющих символов в команде printf. Поэтому команда printf в Linux имеет те же свойства, что и функция printf в C.

Чтобы отформатировать вывод нашего скрипта, мы будем использовать два управляющих символа из таблицы выше. Чтобы они работали, управляющие символы должны быть указаны с помощью \ внутри кавычек команды printf. Например, мы изменим предыдущий содержимое hello.sh на:

#!/bin/bash  
 printf "Hello \t $(whoami) !\n"  
 printf "The date today is $(date)\n"

Скрипт выводит следующее:

Заключение

В этом учебнике вы узнали основы скриптов оболочки и смогли создать и запустить скрипты оболочки. Во второй части учебника я представлю, как объявлять переменные, принимать ввод и выполнять арифметические операции с помощью команд оболочки.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.