fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Shell Scripting для начинающих – как писать сценарии Bash в Linux

Shell Scripting для начинающих – как писать сценарии Bash в Linux

Заира Хира

Shell-сценарии являются важной частью автоматизации процессов в Linux. Сценарии помогают записать последовательность команд в файл и затем выполнить их.

Это экономит ваше время, поскольку вам не нужно писать определенные команды снова и снова. Вы можете эффективно выполнять ежедневные задачи и даже планировать их автоматическое выполнение.

Вы также можете настроить выполнение определенных сценариев при запуске, например, показать определенное сообщение при запуске новой сессии или установить определенные переменные среды.

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

В этой статье вы узнаете:

  1. Что такое оболочка bash?
  2. Что такое сценарий bash и как его определить?
  3. Как создать свой первый сценарий bash и выполнить его.
  4. Основной синтаксис сценариев оболочки.
  5. Как просмотреть запланированные сценарии системы.
  6. Как автоматизировать скрипты путем планирования с помощью заданий cron.

Лучший способ обучения – это практика. Я настоятельно рекомендую вам следовать за мной, используя Replit. Вы сможете получить доступ к запущенной оболочке Linux в течение нескольких минут.

Введение в оболочку Bash

Командная строка Linux обеспечивается программой под названием shell. С годами программа shell развивалась, чтобы удовлетворить различные потребности.

Разные пользователи могут быть настроены на использование разных оболочек. Но большинство пользователей предпочитают придерживаться текущей оболочки по умолчанию. Оболочкой по умолчанию во многих дистрибутивах Linux является GNU Bourne-Again Shell (bash). Bash является преемником Bourne shell ( sh ).

Когда вы впервые запускаете оболочку, она использует сценарий запуска, расположенный в файле .bashrc или .bash_profile, который позволяет вам настроить поведение оболочки.

Когда оболочка используется интерактивно, она отображает символ $, ожидая команды от пользователя. Это называется приглашением оболочки.

Если shell запущен от имени root, подсказка меняется на # . Подсказка shell для суперпользователя выглядит следующим образом:

Bash является очень мощным инструментом, поскольку он может упростить некоторые операции, которые трудно эффективно выполнить с помощью графического интерфейса. Помните, что большинство серверов не имеют графического интерфейса, и лучше научиться использовать возможности интерфейса командной строки (CLI).

Что такое сценарий Bash?

Сценарий bash – это серия команд, записанных в файле. Они считываются и выполняются программой bash. Программа выполняет строку за строкой.

Например, вы можете перейти по определенному пути, создать папку и запустить в ней процесс с помощью командной строки.

Ту же последовательность действий можно выполнить, сохранив команды в сценарии bash и запустив его. Сценарий можно запускать любое количество раз.

Как определить сценарий Bash?

Расширение файла .sh .

Согласно соглашениям об именовании, сценарии bash заканчиваются символом .sh . Однако сценарии bash могут прекрасно работать и без расширения sh.

Сценарии начинаются с bash bash .

Сценарии также обозначаются символом shebang . Shebang – это комбинация bash # и bang ! с последующим указанием пути к оболочке bash. Это первая строка сценария. Shebang указывает оболочке выполнить его через bash shell. Shebang – это просто абсолютный путь к интерпретатору bash.

Ниже приведен пример оператора shebang.

Путь к программе bash может быть разным. Позже мы увидим, как его определить.

Права на выполнение

Скрипты имеют права на выполнение для пользователя, выполняющего их.

Право на выполнение представлено символом x. В примере ниже мой пользователь имеет права rwx (чтение, запись, выполнение) для файла test_script.sh.

Цвет файла

Исполняемые скрипты отображаются цветом, отличным от цвета остальных файлов и папок.

В моем случае скрипты с правами на выполнение отображаются зеленым цветом.

Как создать свой первый сценарий Bash

Давайте создадим простой скрипт в bash, который выводит Hello World.

Создайте файл с именем hello_world.sh

Найдите путь к вашей оболочке bash.

В моем случае путь – /usr/bin/bash, и я включу его в shebang.

Напишите команду.

Мы выведем в консоль эхо “hello world”.

Наш скрипт будет выглядеть примерно так:

Отредактируйте файл hello_world.sh с помощью выбранного вами текстового редактора и добавьте в него вышеприведенные строки.

Предоставьте права на выполнение вашему пользователю.

Измените права доступа к файлу и разрешите выполнение скрипта с помощью команды ниже:

chmod изменяет существующие права на файл для определенного пользователя. Мы добавляем +x для пользователя u .

Запустите скрипт.

Вы можете запустить скрипт следующими способами:

Вот результат:

Два способа запуска скриптов

Основной синтаксис сценариев Bash

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

Как определять переменные

Мы можем определить переменную, используя синтаксис имя_переменной=значение. Чтобы получить значение переменной, добавьте $ перед переменной.

Tux – это также имя талисмана Linux, пингвина.

Привет, я Тукс.

Арифметические выражения

Ниже перечислены операторы, поддерживаемые bash для математических вычислений:

Оператор Использование
+ сложение
вычитание
* умножение
/ деление
** экспоненция
% модуль

Давайте выполним несколько примеров.

Обратите внимание на пробелы, они являются частью синтаксиса

Числовые выражения также могут быть вычислены и сохранены в переменной с помощью приведенного ниже синтаксиса:

Попробуем рассмотреть пример.

Дробные числа не вычисляются корректно с помощью вышеуказанных методов и усекаются.

Для десятичных вычислений мы можем использовать команду bc, чтобы получить результат до определенного числа десятичных знаков. bc (Bash Calculator) – это калькулятор командной строки, который поддерживает вычисления до определенного числа десятичных знаков.

echo “scale=2;22/7” | bc

Где scale определяет количество десятичных знаков, необходимых для вывода.

Получение вывода с точностью до 2 знаков после запятой

Как читать пользовательский ввод

Иногда вам нужно собрать пользовательский ввод и выполнить соответствующие операции.

В bash мы можем получить данные от пользователя с помощью команды read.

Чтобы вывести пользователю пользовательское сообщение, используйте фла г-p.

rea d-p “Введите ваш возраст” имя_переменной

Пример:

Логические операторы сравнения чисел

Сравнение используется для проверки истинности или ложности утверждений. Для сравнения двух утверждений можно использовать приведенные ниже операторы:

Операция Синтаксис Объяснение
Равенство num 1-eq num2 равно ли число num1 числу num2
G Условия – это выражения, которые оцениваются как булево выражение (true или false). Для проверки условий мы можем использовать if , if-else , if-elif-else и вложенные условия. Структура условных утверждений выглядит следующим образом:
if. then. fi if. then. else. fi высказывания if..elif..else..fi
if…then…else…if…then…fi… (Вложенные условия). Синтаксис Для создания значимых сравнений мы можем использовать AN D-a и O R-o.
Приведенное ниже утверждение переводится как: Если a больше 40, а b меньше 6. if [ $ a-gt 4 0-a $ b-lt 6 ]. Пример Найдем тип треугольника, считав длины его сторон.
Вывод Циклы и пропуски Циклы For позволяют выполнять операторы определенное количество раз.

Циклы с числами:

В приведенном ниже примере цикл будет повторяться 5 раз.

Циклы со строками:

Мы также можем перебирать строки.

Цикл While

Циклы While проверяют условие и выполняют цикл до тех пор, пока условие не станет истинным. Для управления выполнением цикла нам необходимо указать оператор счетчика, который увеличивает счетчик.

  • В приведенном ниже примере (( i += 1 )) – это оператор счетчика, который увеличивает значение i.
  • Пример:
  • Чтение файлов
  • Предположим, у нас есть файл sample_file.txt, как показано ниже:

Циклы с числами:

Вывод:

Напечатаны строки с номером строки

Как выполнять команды с обратными тиками

Если вам нужно включить вывод сложной команды в ваш сценарий, вы можете написать оператор внутри обратных тиков.

Синтаксис:

Пример: Предположим, мы хотим получить вывод списка точек монтирования с именем tmpfs. Мы можем написать следующее утверждение: d f-h | grep tmpfs .

Чтобы включить его в сценарий bash, мы можем заключить его в обратные тики.

Как получить аргументы для скриптов из командной строки

Можно передавать аргументы скрипту при выполнении.

$@ обозначает позицию параметров, начиная с единицы.

Запустите скрипт следующим образом:

./script arg1 arg2

Как автоматизировать скрипты с помощью планирования с помощью заданий cron

Cron – это утилита планирования заданий, присутствующая в Unix-системах. Вы можете планировать выполнение заданий ежедневно, еженедельно, ежемесячно или в определенное время дня. Автоматизация в Linux в значительной степени зависит от заданий cron.

Пример:

Здесь * обозначает минуту(ы) час(ы) день(ы) месяц(ы) будний день(ы), соответственно.

Ниже приведены примеры планирования заданий cron.

РАСПИСАНИЕ

ЗАПЛАНИРОВАННОЕ ЗНАЧЕНИЕ

5 0 * 8 *

В 00:05 в августе.

5 4 * * 6

В 04:05 в воскресенье.

0 22 * * 1-5

В 22:00 в каждый день недели с понедельника по пятницу.

Подробнее о cron вы можете узнать в этой статье блога.

Как проверить существующие сценарии в системе

С помощью crontab

cronta b-l выводит список уже запланированных сценариев для конкретного пользователя.

Мои запланированные сценарии

Использование команды find

Команда find помогает находить файлы по определенным шаблонам. Поскольку большинство скриптов заканчиваются на .sh, мы можем использовать скрипт find следующим образом:

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

-type f указывает на то, что тип файла, который мы используем

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *