Bash скриптинг

Описание

  • Shell скрипт может быть набором команд, исполняемых последовательно

  • Скрипты поддерживают переменные для поддержки различных условий

  • Могут использоваться различные условия, такие как for, if, case, while

  • Не нужен дополнительный интерпретатор, так как все команды поддерживаются shell

  • Bash скрипты работают быстро если используют только внутренние команды

  • Нет необходимости в компиляции

  • Для Bash нет модулей

  • Не является идемпонентным

    • Идемпотентность — свойство объекта или операции при повторном применении операции к объекту давать тот же результат, что и при первом

Основные компоненты

  • Каждый скрипт начинается с "#!/bin/bash"

    • Необходим, так как не все Linux системы по-умолчанию работают через bash, соответственно без этого указания скрипт на таких системах не будет работать корректно

  • Комментарии начинаются с "#" в начале строки

  • "echo" выводит текст в консоль

  • "read" читает введеные данные

  • "$" задает переменную

  • Скрипты запускаются в сабшелле, после исполнения сабшелл закрывается, таким образом пользователь остается в свой среде в изначальной позиции

    • Если необходимо запустить скрипт в текущем шелле, до его необходимо указать в источник через точку

[root@server ~]# . myscript
  • "exit" - выход из скрипта

    • Если exit равен нулю - скрипт успешно отработал, если единице - то скрипт завершен с ошибками

  • В квадратные скобки заключается тест команда

    • man test для справки

Петли

  • Для написания скрипта с возможностью множественных итераций одного процесса используются условия

  • if ... then ... fi

    • if (если) - условие, then (тогда) - что нужно сделать при данном условии, fi (finish) - закончить обработку

  • while .... do ... done

    • while - условие true в течение времени

  • until ... do ... done

    • until - противоположно while

  • case ...in ... esac

    • case - для проверки конкретных параметров

  • for ... in ... do ... done

    • for - обработка последовательности аргументов

Last updated