Подключение локального репозитория
Командный набор оболочки 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