Запуск скриптов формата SH в Linux
Сначала мы предлагаем создать проверочный скрипт, который в будущем будем запускать. Конечно, вы можете пропустить данный этап, если сценарий командной строки уже имеется. Отметим, что сейчас мы не будем разбирать синтаксис языков программирования, а лишь расскажем, что каждому под силу создать собственный скрипт или вставить содержимое в файл для дальнейшего его вызова по обстоятельствам.
- Запустите «Терминал» удобным для вас образом, например, через меню приложений или горячую клавишу Ctrl + Alt + T.

- Здесь используйте команду sudo nano script.sh , где nano — используемый текстовый редактор, а script.sh — название создаваемого файла. Можно создавать файл, например, через тот же vi или gedit, сути это не изменит, а название элемента тоже меняется по личным предпочтениям пользователя.

- Подтвердите это действие, введя пароль от учетной записи суперпользователя, поскольку оно выполняется с аргументом sudo.

- Откроется новый файл, в который можно вставить строки скрипта. Ниже вы видите стандартный пример, отвечающий за вывод сообщения «Hello world». Если имеется содержимое другого характера, просто вставьте его в консоль, убедившись, что все строки написаны верно. #!/bin/bash
echo «Hello world»
- После этого можно сохранить настройки, зажав комбинацию клавиш Ctrl + O.

- Имя файла изменять не нужно, поскольку его мы задали при создании. Просто нажмите на Enter, чтобы завершить сохранение.

- Покиньте текстовый редактор через Ctrl + X.

Как видим, ничего сложного в создании собственных скриптов для Bash нет, однако вся особенность заключается в знании кода. Придется либо писать его с нуля самому, либо скопировать готовые решения из свободных источников. После того, как скрипт успешно реализован в файле, можно смело переходить к следующему этапу.
Шаг 2: Настройка скрипта для утилиты env
Этот шаг тоже является не обязательным, однако без него не обойтись пользователям, которые задействуют утилиту env для запуска скрипта. Без предварительной настройки он просто не откроется, поскольку изначально не были получены соответствующие разрешения. Добавляются они через команду sudo chmod ugo+x script.sh , где script.sh — название необходимого файла.

Не забывайте, что все действия, выполняемые через аргумент sudo, требуют подтверждения подлинности учетной записи через ввод пароля суперпользователя. После этого отобразится новая строка для запуска команд, что означает успешное применение настройки.

Шаг 3: Запуск имеющегося скрипта
Перейдем к основному шагу, который и заключается в непосредственном запуске имеющегося скрипта. Для начала рассмотрим простую команду, которая имеет вид ./script.sh и отвечает за запуск файла из текущего места расположения. Результат вывода вы видите на приведенном ниже скриншоте. За пример мы взяли созданный ранее сценарий. По тому же принципу можно указать и полный путь к объекту, чтобы строка изменилась, например, на /home/user/script.sh .

В Linux имеется системная переменная PATH. В нее входит ряд папок, отвечающих за выполнение самых разнообразных действий. Одна из них называется /usr/local/bin и используется для ручной инсталляции программ. Если вы не желаете постоянно указывать полный путь к скрипту для его активации, просто добавьте его в одну из папок PATH. Для этого используется строка cp script.sh /usr/local/bin/script.sh .

После этого запуск будет доступен путем простого ввод названия файла с учетом расширения.

Второй метод открытия заключается в одновременном вызове оболочки. Вам следует переместиться в директорию со скриптом и написать bash script.sh . Этот метод хорош тем, что позволяет не вписывать полный путь к объекту или предварительно добавлять его в соответствующие директории PATH.

Это все, что мы хотели рассказать о взаимодействии со скриптами в Linux. Вам остается только создать соответствующий файл или открыть уже имеющийся, используя приведенные выше рекомендации.
Как запускать скрипты в Linux
Запуск скриптов в операционной системе Linux является важным навыком для любого разработчика или системного администратора. Ведь с помощью скриптов можно автоматизировать различные задачи, упростить рутинные операции и значительно повысить эффективность работы. В этом пошаговом руководстве мы рассмотрим основные способы запуска скриптов в Linux, а также расскажем о том, как правильно настраивать окружение и использовать различные команды.
Прежде чем приступить к запуску скриптов, необходимо убедиться, что у вас установлен интерпретатор, подходящий для вашего скрипта. В Linux наиболее распространены интерпретаторы, такие как Bash (Bourne Again SHell), Python, Perl и многие другие. Интерпретатор обычно поставляется вместе с операционной системой или может быть установлен отдельно с использованием пакетного менеджера.
Прежде чем запускать скрипты, необходимо убедиться, что установлен интерпретатор, совместимый с вашим скриптом. В Linux наиболее распространены интерпретаторы, такие как Bash, Python и Perl.
Для того чтобы запустить скрипт, вы можете использовать различные команды в терминале Linux. Например, для запуска скрипта на Bash, вам потребуется использовать команду «bash» или просто указать путь к скрипту, если у вас настроено соответствующее разрешение для файла. Если скрипт написан на Python, вы можете запустить его с помощью команды «python» или «python3», в зависимости от версии Python, установленной на вашей системе.
В зависимости от настроек безопасности вашей системы, вам могут потребоваться дополнительные разрешения для запуска скриптов. Вы можете использовать команду «chmod» для изменения разрешений файла, чтобы дать ему право на выполнение. В некоторых случаях также может быть необходимо указать путь к интерпретатору в самом скрипте с помощью шебанга.
Подготовка к запуску скриптов: настройка Linux
Перед тем, как начать запускать скрипты в Linux, вам необходимо внести некоторые настройки. В этом разделе мы рассмотрим основные шаги, которые нужно выполнить перед запуском скриптов.
| Шаг | Описание |
| 1 | Установите необходимые интерпретаторы |
| 2 | Убедитесь, что у скрипта есть исполняемые права |
| 3 | Добавьте путь к скрипту в переменную PATH |
| 4 | Настройте права доступа к файлам и папкам, которыми пользуется скрипт |
Установка необходимых интерпретаторов
Для запуска скриптов, написанных на разных языках программирования, вам может понадобиться установить соответствующие интерпретаторы. Например, для запуска скриптов на языке Python потребуется установить Python интерпретатор.
Для установки интерпретатора воспользуйтесь инструкцией, доступной на официальном сайте проекта или в пакетном менеджере вашей Linux-системы.
Установка исполняемых прав для скрипта
Прежде чем запускать скрипт, необходимо убедиться, что у него есть исполняемые права. Для этого выполните команду:
chmod +x скрипт.sh
Здесь «скрипт.sh» — это имя вашего скрипта. Знак «+» перед «x» означает, что вы добавляете исполняемые права.
Добавление пути к скрипту в переменную PATH
Чтобы иметь возможность запускать скрипты из любого места в системе, необходимо добавить путь к скрипту в переменную PATH.
Создайте файл «.bashrc» в вашей домашней директории, если его еще нет:
touch ~/.bashrc
Откройте данный файл в текстовом редакторе:
nano ~/.bashrc
Добавьте следующую строку в файл:
export PATH="$PATH:/путь/к/скрипту"
Здесь «/путь/к/скрипту» — это путь к вашему скрипту. Не забудьте сохранить изменения и закрыть файл.
Чтобы изменения вступили в силу, выполните команду:
source ~/.bashrc
Настройка прав доступа к файлам и папкам
Скрипты могут использовать файлы и папки в различных местах системы. Убедитесь, что у скрипта достаточно прав доступа для чтения и записи в требуемые файлы и папки.
Используйте команду «chmod» для установки нужных прав доступа:
chmod права_доступа файл_или_папка
Здесь «права_доступа» — это комбинация букв и цифр, указывающая необходимые права доступа, а «файл_или_папка» — это путь к файлу или папке, для которых вы хотите настроить права доступа.
Например, для установки прав доступа на чтение, запись и выполнение для всех пользователей на файл «скрипт.sh», выполните команду:
chmod 777 скрипт.sh
Теперь вы готовы к запуску своих скриптов в Linux! Следуйте нашей инструкции, чтобы узнать, как запустить скрипт в Linux.
Установка необходимых компонентов
Перед запуском скриптов в Linux необходимо установить некоторые компоненты, которые могут понадобиться для их работы. В зависимости от конкретных требований и задачи, эти компоненты могут варьироваться.
Вот несколько самых популярных компонентов, которые часто используются в Linux:
- Bash — интерпретатор командной строки, который используется для запуска скриптов. Большинство дистрибутивов Linux уже включают Bash по умолчанию, поэтому дополнительная установка обычно не требуется.
- Python — язык программирования, который также может использоваться для написания скриптов. Установка Python обычно выполняется через менеджер пакетов, такой как apt или yum.
- Perl — другой популярный язык программирования, используемый для написания скриптов. Установка Perl также выполняется через менеджер пакетов.
- Git — распределенная система управления версиями, которая упрощает работу с кодом и совместную разработку. Git также может использоваться для запуска скриптов, связанных с проектами, хранящимися в репозиториях Git.
- Apache — популярный веб-сервер, который можно использовать для запуска скриптов на стороне сервера. Установка и настройка Apache также выполняются через менеджер пакетов.
Каждый из этих компонентов имеет свою уникальную установку и настройку процедуру, которая может отличаться в разных дистрибутивах Linux. Рекомендуется обратиться к официальным документациям для более подробной информации о том, как установить и настроить каждый из этих компонентов.
Запуск скрипта sh в Linux
Управление операционной системой Linux осуществляется посредством терминала. Пользователь имеет дело со специальной командной оболочкой, через которую задаются те или иные команды для выполнения нужных действий. Об этом не знает разве что новичок, впервые столкнувшийся с ОС Линукс. Чтобы управление системой не вызывало излишних трудностей, разработчики придумали специальные скрипты. Их можно использовать по отдельности, либо объединять в единую команду. Каждый скрипт отвечает за определенное действие. Опытные пользователи уже неоднократно убедились в том, насколько удобно работать с Линукс при помощи скриптов. Данная статья станет неким руководством для новичка. В ней мы подробно объясним, как запускать скрипты на ПК. Скрипты в операционной системе Linux представляют собой обычные файлы. В них содержится текст. Если файлу присвоен атрибутив исполняемости, система (исключительно с подачи пользователя) начинает выполнять команды, которые содержатся в определенном файле.
Запуск script bash

Чтобы лучше понять, как работать со скриптами, стоит рассмотреть несложный пример. Допустим, необходимо запустить script bash. Для этого, создам файл «primer.sh», с помощью редактора nano. $ nano primer.sh Внутри файла пишем следующий код: #!/bin/bash echo «Primer vypolneniya scripta» В представленном примере первая строка – это та самая оболочка, посредством которой выполняется определенное действие. Само действие в данном случае указано во второй строке. Примечательно, что у данного варианта могут быть альтернативные окончания. Например:
- /bin/sh — bash script.
- /usr/bin/php — php scpript.
- /usr/bin/python — язык python.
Далее необходимо сохранить файл. Согласно нашему примеру нажимаем «ctrl + O», затем «ctrl + X».
Чтобы script bash отработал, необходимо дать файлу специальные права на исполнение.
$ chmod ugo+x primer.sh
После этого файл будет доступен к запуску для всех категорий пользователей Линукс (без исключений). Чтобы найти нужный скрипт в системе, необходимо задать полный путь или относительный.
В нашем примере файл лежит в домашнем каталоге, поэтому просто для запуска вводи название скрипта.

А вот указание полного пути. Он будет выглядеть следующим образом:
Запуск через оболочку bash
Далее мы рассмотрим альтернативный способ запуска script, используя для этих целей оболочку. Пользователь может сразу передать ей нужный скрипт для выполнения. Такое не часто встречается на практике в случае с bash, чего не скажешь о скриптах python и php. Как запустить скрипт указанным способом:
Предлагаем вашему вниманию еще один аналогичный способ запуска:
Чтобы произвести запуск сценария в операционной системе Линукс в виде фонового процесса, необходимо использовать специальный символ. Он будет указан ниже:
Заключение
Знакомство новичка с терминалом Linux часто приводит к некоторым сложностям. Разобравшись в том, как происходит управление устройством, данная проблема быстро пропадает. Данная статья лишь подтверждает это. Запускать script в Линукс действительно легко.
Bash скрипты

В Linux автоматизация процессов в значительной степени решается исполняемыми скриптами в shell оболочке. Это подразумевает под собой создание файла, содержащего ряд команд, которые исполняются последовательно.
В этой статье мы обсудим основы написания сценариев bash, включая переменные, команды, ввод/вывод и отладку. Каждый пункт сопроводим примерами.
Оглавление
- Минимальные требования
- Введение
- Определение Bash-скрипта
- Преимущества Bash-скриптов
- Обзор оболочки Bash и интерфейса командной строки
- Как запускать команды Bash из командной строки
- Как создавать и выполнять сценарии Bash
- Комментарии в сценариях bash
- Переменные и типы данных в Bash
- Ввод и вывод в Bash-скриптах
- Основные команды Bash (echo, read и т. д.)
- Условные операторы (если/иначе)
- Цикл While
- Цикл For
- Оператор Case
Минимальные требования
Чтобы следовать этому руководству, необходимо иметь следующее:
Работающая версия Linux с доступом к командной строке.
Если у вас не установлен Linux или вы только начинаете его изучать, вы можете легко получить доступ к командной строке Linux через Replit. Replit — это браузерная IDE, в которой вы можете получить доступ к оболочке bash за несколько минут.
Вы также можете установить Linux поверх вашей системы Windows, используя WSL (подсистема Windows для Linux). Инструкция по ссылке.
Введение
Определение Bash-скрипта
Bash-скрипт — это файл, содержащий последовательность команд, которые выполняются программой bash построчно. Он позволяет выполнять ряд действий, таких как переход к определенному каталогу, создание папки и запуск процесса с помощью командной строки.
Сохранив эти команды в сценарии(скрипты), вы можете повторять одну и ту же последовательность шагов несколько раз и выполнять их, запустив сценарий.
Преимущества Bash-скриптов
Сценарии Bash — это мощный и универсальный инструмент для автоматизации задач системного администрирования, управления системными ресурсами и выполнения других рутинных задач в системах Unix/Linux. Некоторые преимущества сценариев оболочки:
- Автоматизация: сценарии оболочки позволяют автоматизировать повторяющиеся задачи и процессы, экономя время и снижая риск ошибок, которые могут возникнуть при ручном выполнении.
- Портативность: сценарии оболочки можно запускать на различных платформах и операционных системах, включая Unix, Linux, macOS и даже Windows, с помощью эмуляторов или виртуальных машин.
- Гибкость: сценарии оболочки легко настраиваются и могут быть легко изменены в соответствии с конкретными требованиями. Их также можно комбинировать с другими языками программирования или утилитами для создания более мощных сценариев.
- Доступность. Сценарии оболочки легко писать и не требуют специальных инструментов или программного обеспечения. Их можно редактировать с помощью любого текстового редактора, а в большинстве операционных систем есть встроенный интерпретатор оболочки.
- Интеграция: сценарии оболочки можно интегрировать с другими инструментами и приложениями, такими как базы данных, веб-серверы и облачные службы, что позволяет решать более сложные задачи автоматизации и управления системой.
- Отладка: сценарии оболочки легко отлаживать, и большинство оболочек имеют встроенные инструменты отладки и сообщения об ошибках, которые помогают быстро выявлять и устранять проблемы.
Обзор оболочки Bash и интерфейса командной строки
Термины «оболочка» и «bash» взаимозаменяемы. Но между ними есть тонкая разница.
Термин «оболочка» относится к программе, которая предоставляет интерфейс командной строки для взаимодействия с операционной системой. Bash (Bourne Again SHell) является одной из наиболее часто используемых оболочек Unix/Linux и является оболочкой по умолчанию во многих дистрибутивах Linux.
Интерфейс оболочки zsh или командной строки выглядит следующим образом:

В приведенном выше выводе clockber::~>> — это приглашение оболочки zsh. Когда оболочка используется в интерактивном режиме, в Linux она отображает $, когда ожидает команды от пользователя.
Если оболочка запущена от имени пользователя root (пользователь с правами администратора), приглашение меняется на #. Приглашение оболочки суперпользователя выглядит следующим образом:
[root@host ~]#
Хотя Bash — это тип оболочки, существуют и другие доступные оболочки, такие как оболочка Korn (ksh), оболочка C (csh) и оболочка Z (zsh). Каждая оболочка имеет свой собственный синтаксис и набор функций, но все они имеют общую цель — предоставить интерфейс командной строки для взаимодействия с операционной системой.
Вы можете определить свой тип оболочки с помощью команды ps:
Пример вывода моего терминала:

Таким образом, в то время как «оболочка» — это широкий термин, относящийся к любой программе, предоставляющей интерфейс командной строки, «Bash» — это особый тип оболочки, который широко используется в системах Unix/Linux.
Примечание: в этом руководстве мы будем использовать оболочку «bash».
Как начать работать с Bash-скриптами
Как запускать команды Bash из командной строки
Как упоминалось ранее, приглашение оболочки выглядит примерно так:
[user@host ~]$
Вы можете ввести любую команду после знака $ и увидеть результат на терминале.
Как правило, команды имеют следующий синтаксис:
command [OPTIONS] arguments
Давайте рассмотрим несколько основных команд bash и посмотрим их результаты. Обязательно попробуйте выполнить их в своем терминале.
- date : отображает текущую дату
admin@user-new:/$ date Sat 25 Mar 2023 14 12:04:17 PM MSK
- pwd : Отображает текущий рабочий каталог.
admin@user-new:/usr/lib$ pwd /usr/lib
- ls : Выводит содержимое текущего каталога.
admin@user-new:/home$ ls clockber
- echo : Выводит на терминал строку текста или значение переменной.
admin@user-new:/home$ echo "Hello bash" Hello bash
Вы всегда можете обратиться к руководству по командам с помощью команды man.
Например, руководство по echo выглядит примерно так:

Как создавать и выполнять сценарии Bash
Соглашения об именах сценариев
По соглашению об именах сценарии bash заканчиваются на .sh. Однако сценарии bash могут прекрасно работать без расширения sh.
Добавляем Шебанг(Shebang)
Скрипты Bash начинаются с шебанга. Шебанг(Shebang) — это комбинация bash # и bang ! за которым следует путь оболочки bash. Это первая строка скрипта. Шебанг говорит оболочке выполнить его через оболочку bash. Shebang — это просто абсолютный путь к интерпретатору bash.
Ниже приведен пример оператора шебанг.
#!/bin/bash
Вы можете найти путь к оболочке bash (который может отличаться от указанного выше) с помощью команды:
which bash
Наш первый bash-скрипт
Наш первый скрипт предлагает пользователю ввести путь. В свою очередь он вернет все содержимое указанного каталога.
Создайте файл с именем show_all.sh с помощью команды vi . Вы можете использовать любой редактор по вашему выбору.
vi show_all.sh
Добавьте следующие команды в свой файл и сохраните его:
#!/bin/bash echo "сегодня " `date` echo -e "\n введите путь к директории:" read path_to echo -e "\n ваша директория содержит файлы и папки:" ls $path_to
Скрипт отобразит текущую дату и содержимое предоставленного пользователем каталога.
Давайте более подробно рассмотрим сценарий построчно. Я снова привожу тот же сценарий, но на этот раз с номерами строк.
#!/bin/bash echo "Сегодня " `date` echo -e "\n введите путь к директории:" read path_to echo -e "\n ваша директория содержит файлы и папки:" ls $path_to
- Строка #1: Шебанг (#!/bin/bash) указывает на путь к оболочке bash.
- Строка #2: команда echo отображает текущую дату и время на терминале. Обратите внимание, что дата указана в обратных кавычках.
- Строка #4: мы хотим, чтобы пользователь ввел правильный путь.Строка #5: Команда чтения считывает ввод и сохраняет его в переменной path_to.
- строка #8: Команда lh берет переменную с сохраненным путем и отображает текущие файлы и папки.
Выполнение bash-скрипта
Чтобы сделать скрипт исполняемым, назначьте права на выполнение своему пользователю с помощью команды:
chmod u+x show_all.sh
- chmod изменяет владельца файла для текущего пользователя u: .
- +x добавляет права на выполнение текущему пользователю. Это означает, что пользователь, являющийся владельцем, теперь может запустить сценарий.
- show_all.sh — это файл, который мы хотим запустить.
Вы можете запустить скрипт любым из указанных способов:
- sh show_all.sh
- bash show_all.sh
- ./show_all.sh
Давайте посмотрим, как он работает
Основы Bash скриптов
Комментарии в сценариях bash
Комментарии начинаются с # в сценариях bash. Это означает, что любая строка, начинающаяся с #, является комментарием и будет игнорироваться интерпретатором.
Комментарии очень полезны при документировании кода, и рекомендуется добавлять их, чтобы помочь другим понять код.
Вот примеры комментариев:
# This is an example comment # Можно комментить на русском # These lines will be ignored by the interpreter
Переменные и типы данных в Bash
Переменные позволяют хранить данные. Вы можете использовать переменные для чтения, доступа и управления данными во всем сценарии.
В Bash нет типов данных. В Bash переменная может хранить числовые значения, отдельные символы или строки символов.
В Bash вы можете использовать и устанавливать значения переменных следующими способами:
- Назначьте значение напрямую:
country=Russia
2. Присвоение значение на основе вывода, полученного от программы или команды, используя подстановку команд. Обратите внимание, что $ требуется для доступа к значению существующей переменной.
same_country=$country
Чтобы получить доступ к значению переменной, добавьте $ к имени переменной.
admin@user-new:/$ country=Russia admin@user-new:/$ echo $country Russia admin@user-new:/$ new_country=$country admin@user-new:/$ echo $new_country Russia
Соглашения об именах переменных
В сценариях Bash следующие соглашения об именах переменных:
- Имена переменных должны начинаться с буквы или символа подчеркивания ().
- Имена переменных могут содержать буквы, цифры и символы подчеркивания ().
- Имена переменных чувствительны к регистру.
- Имена переменных не должны содержать пробелов или специальных символов.
- Используйте описательные имена, отражающие назначение переменной.
- Избегайте использования зарезервированных ключевых слов, таких как if, then, else, fi и т. д., в качестве имен переменных.
Вот несколько примеров допустимых имен переменных в Bash:
name count _var myVar MY_VAR
А вот несколько примеров недопустимых имен переменных:
2ndvar (начинается с цифры) my var (содержит пробел) my-var (содержит дефис)
Соблюдение этих соглашений об именах помогает делать сценарии Bash более читабельными и простыми в использовании.
Ввод и вывод в Bash-скриптах
Обработка входных данных
В этом разделе мы обсудим некоторые методы ввода данных в наши сценарии.
- Чтение пользовательского ввода и сохранение его в переменной
Мы можем прочитать пользовательский ввод с помощью команды чтения.
#!/bin/bash echo -e "\n Enter your name:" read the_name echo -e "\n welcome to Medium $the_name"
2. Чтение из файла
Этот код считывает каждую строку из файла с именем input.txt и выводит ее на терминал. Мы изучим циклы while позже в этой статье.
while read line do echo $line done < input.txt
3. Аргументы командной строки
В скрипте или функции bash $1 обозначает переданный начальный аргумент, $2 обозначает переданный второй аргумент и так далее.
Этот сценарий принимает имя в качестве аргумента командной строки и печатает персонализированное приветствие.
echo "Hello, $1!"
Мы передаем скрипту clockber как аргумент.
#!/bin/bash echo "Hello, $1!"
Отображение вывода
Здесь мы обсудим некоторые методы получения вывода из скриптов.
- Печать в терминал:
echo "Hello, World!"
Этой командой напечатаем текст “Hello, World!” в терминале.
2. Запись в файл:
echo "let's write text." > output.txt
Эта команда запишет текст “let’s write text.” в файл с именем output.txt. Обратите внимание, что оператор > перезапишет файл, если в нем уже есть содержимое.
3. Добавление в файл:
echo "More text." >> output.txt
Добавляем текст “More text.” в конец файла output.txt.
4. Перенаправление вывода:
ls > files.txt
Перечисляем файлы в текущем каталоге и записываем вывод в файл с именем files.txt. Таким образом вы можете перенаправить вывод любой команды в файл.
Основные команды Bash (echo, read и т. д.)
Вот список некоторых наиболее часто используемых команд bash:
- cd : Изменение директории на другую.
- ls : Отображение содержимого в текущей директории.
- mkdir : Создание новой директории.
- touch : Создать новый файл.
- rm : Удаление файла или директории.
- cp : Копирование файла или директории.
- mv : Перемещение или переименование файла или директории.
- echo : Печать текста в терминал.
- cat : Читает данные из файла и выводит их на экран.
- grep : Поиск в файлах.
- chmod : Изменение прав доступа к файлу или директории.
- sudo : Запуск команд с правами администратора.
- df : Отображение дискового пространства.
- history : Отображение истории предыдущих комманд.
- ps : Отображение информации о запущенных процессах.
Условные операторы (if/else)
Выражения, дающие логический результат, истинный или ложный, называются условиями. Существует несколько способов оценки условий, включая if , if-else , if-elif-else и вложенные условные операторы.
if [[ condition ]]; then statement elif [[ condition ]]; then statement else do this by default fi
Можно использовать логические операторы, такие как AND -a и OR -o , чтобы делать сравнения, которые имеют большее значение.
if [ $a -gt 60 -a $b -lt 100 ]
Давайте рассмотрим пример сценария Bash, который использует операторы if , if-else , if-elif-else , чтобы определить, является ли введенное пользователем число положительным, отрицательным или нулевым:
#!/bin/bash echo "Please enter a number: " read num if [ $num -gt 0 ]; then echo "$num is positive" elif [ $num -lt 0 ]; then echo "$num is negative" else echo "$num is zero" fi
Сначала скрипт предлагает пользователю ввести число. Затем он использует оператор if , чтобы проверить, больше ли число, чем 0. Если это так, сценарий выводит, что число положительное. Если число не больше 0, скрипт переходит к следующему оператору, который является оператором if-elif . Здесь скрипт проверяет, меньше ли число 0. Если да, то скрипт выводит отрицательное число. Наконец, если число не больше 0 и не меньше 0, скрипт использует оператор else для вывода того, что число равно нулю.
Циклы и ветвление в Bash
Цикл While
Циклы while проверяют условие в цикле, пока это условие остается true . Для управления циклом принято использовать счетчики.
В приведенном ниже примере (( i += 1 )) — это оператор счетчика, который увеличивает значение i. Цикл будет выполняться ровно 10 раз.
#!/bin/bash i=1 while [[ $i -le 10 ]] ; do echo "$i" (( i += 1 )) done
Цикл For
Цикл for, как и цикл while, позволяет выполнять операторы определенное количество раз. Каждый цикл отличается своим синтаксисом и использованием.
В приведенном ниже примере цикл повторяется 5 раз.
#!/bin/bash for i in do echo $i done
Оператор Case
В Bash операторы case используются для сравнения заданного значения со списком шаблонов и выполнения блока кода на основе первого совпавщего шаблона. Синтаксис оператора case в Bash следующий:
case expression in pattern1) # code to execute if expression matches pattern1 ;; pattern2) # code to execute if expression matches pattern2 ;; pattern3) # code to execute if expression matches pattern3 ;; *) # code to execute if none of the above patterns match expression ;; esac
Здесь expression — это значение, которое мы хотим сравнить, а pattern1 , pattern2 , pattern3 и т. д. — это шаблоны, с которыми мы хотим его сравнить.
Двойная точка с запятой “;;” отделяет каждый блок кода для выполнения для каждого шаблона. Звездочка “*” представляет случай по умолчанию, который выполняется, если ни один из указанных шаблонов не соответствует выражению.
Давайте посмотрим пример.
fruit="apple"case in "apple") echo "This is a red fruit." ;; "banana") echo "This is a yellow fruit." ;; "orange") echo "This is an orange fruit." ;; *) echo "Unknown fruit." ;;esac
В данном примере, поскольку значение “fruit” является “apple”, чему соответствует первый шаблон и блок кода, следовательно в терминале мы увидем “This is a red fruit.”. Если бы значением “fruit” было “banana”, второй шаблон соответствовал бы и блоку кода, который повторяет “This is a yellow fruit.”. будет выполняться и так далее. Если значение “fruit”не соответствует ни одному из указанных шаблонов, выполняется случай по умолчанию, который повторяет “Unknown fruit.”.
Планирование сценариев с помощью Сron
Cron — мощная утилита для планирования заданий, доступная в Unix-подобных операционных системах. Настроив cron, вы можете настроить автоматические задания для запуска ежедневно, еженедельно, ежемесячно или в определенное время. Возможности автоматизации, предоставляемые cron, играют решающую роль в системном администрировании Linux.
Ниже приведен синтаксис для планирования crons:
# Cron job example* * * * * sh /path/to/script.sh
Здесь * представляют собой минуты (минуты), часы (часы), день (дни), месяцы и дни недели соответственно.
Ниже приведены несколько примеров планирования заданий cron.
schedule description example0 0 * * * Run a script at midnight every day 0 0 * * * /path/to/script.sh*/5 * * * * Run a script every 5 minutes */5 * * * * /path/to/script.sh0 6 * * 1-5 Run a script at 6 am from Monday to Friday 0 6 * * 1-5 /path/to/script.sh0 0 1-7 * * Run a script on the first 7 days of every month 0 0 1-7 * * /path/to/script.sh0 12 1 * * Run a script on the first day of every month at noon
Использование crontab
Утилита crontab используется для добавления и редактирования заданий cron.
crontab -l перечисляет уже запланированные сценарии для конкретного пользователя.
Вы можете добавлять и редактировать cron через crontab -e .
Вы можете прочитать больше о работе с Cron здесь.
Как отлаживать и устранять неполадки Bash-скриптов
Отладка и устранение неполадок являются важными навыками для любого Bash-скриптора. Хотя сценарии Bash могут быть невероятно мощными, они также могут быть подвержены ошибкам и неожиданному поведению. В этом разделе мы обсудим некоторые советы и методы по отладке и устранению неполадок сценариев Bash.
Установите параметр set -x
Один из наиболее полезных способов отладки сценариев Bash — установка параметра set -x в начале сценария. Эта опция включает режим отладки, в котором Bash печатает каждую команду, которую он выполняет, на терминал, перед которой ставится знак +. Это может быть невероятно полезно для определения того, где в сценарии возникают ошибки.
#!/bin/bashset -x# Your script goes here
Проверьте код выхода
Когда Bash обнаруживает ошибку, он устанавливает код выхода, который указывает характер ошибки. Вы можете проверить код выхода самой последней команды, используя $? переменная. Значение 0 указывает на успех, а любое другое значение указывает на ошибку.
#!/bin/bash# Your script goes hereif [ $? -ne 0 ]; then echo "Error occurred."fi
Используйте операторы echo
Другой полезный метод отладки скриптов Bash — вставка echo-оператора в ваш код. Это может помочь вам определить, где возникают ошибки и какие значения передаются в переменные.
#!/bin/bash# Your script goes hereecho "Value of variable x is: " >x"# More code goes here
Используйте опцию set -e
Если вы хотите, чтобы ваш сценарий завершался немедленно, когда какая-либо команда в сценарии не удалась, вы можете использовать опцию set -e. Этот параметр заставит Bash завершить работу с ошибкой, если какая-либо команда в сценарии завершится неудачно, что упростит выявление и исправление ошибок в вашем сценарии.
#!/bin/bashset -e# Your script goes here
Устранение неполадок Cron путем проверки log журналов
Мы можем устранять неполадки crons с помощью файлов журнала. Журналы ведутся для всех запланированных заданий. Вы можете проверить и проверить в журналах, выполнялось ли конкретное задание должным образом или нет.
Для Ubuntu/Debian вы можете найти cronlogs по адресу:
/var/log/syslog
Расположение отличается для других дистрибутивов.
Файл журнала заданий cron может выглядеть следующим образом:
2022-03-11 00:00:01 Task started2022-03-11 00:00:02 Running script /path/to/script.sh2022-03-11 00:00:03 Script completed successfully2022-03-11 00:05:01 Task started2022-03-11 00:05:02 Running script /path/to/script.sh2022-03-11 00:05:03 Error: unable to connect to database2022-03-11 00:05:03 Script exited with error code 12022-03-11 00:10:01 Task started2022-03-11 00:10:02 Running script /path/to/script.sh2022-03-11 00:10:03 Script completed successfully
Заключение
В этой статье мы начали с того, как получить доступ к терминалу, а затем выполнили некоторые основные команды bash. Также изучили, что такое оболочка bash. Кратко рассмотрели ветвление кода с использованием циклов и условий. Наконец, мы обсудили автоматизацию сценариев с помощью cron, а затем некоторые методы устранения неполадок.
Надеюсь вся вышеперечисленная информация вам помогла 🙂