Подключение локального репозитория

Командный набор оболочки bash является одним из основных средств автоматизации административных задач и позволяет создавать сценарии для выполнения последовательности команд без участия пользователя. Опыт работы с командной строкой необходим для написания эффективных bash-сценариев. При увеличении объёма сценария свыше сотни строк или необходимости использования более сложных конструкций рекомендуется переходить на языки программирования Perl или Python.

Комментарии в сценариях начинаются со знака решетки (#) и продолжаются до конца строки. Одну логическую строку можно разделить на несколько физических, используя символ обратной косой черты (). Несколько команд можно разместить в одной строке, разделив их точкой с запятой (;).

Пример простого сценария:

#!/bin/bash
echo "Hello, world!"

где #!/bin/bash указывает системе, что данный файл должен быть интерпретирован оболочкой bash, расположенной в каталоге /bin/.

Для выполнения сценария необходимо назначить файлу атрибут выполнения:

chmod +x helloworld
./helloworld

Результат:

Hello, world!

Если сценарий можно запустить без указания префикса ./, это означает, что текущий каталог (.) включён в переменную PATH. Такая настройка считается небезопасной, поскольку позволяет выполнить подменённые файлы при наличии прав записи в каталог.

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

bash helloworld
source helloworld

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

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

В Linux тип файла определяется не расширением, а установленными правами доступа. Для удобства допускается использовать суффикс .sh, однако при запуске команда должна включать это расширение, например:

bash script.sh