Какая первая строчка в bash-скрипте?

«Какая первая строчка в bash-скрипте?» — вопрос из категории Скриптинг и автоматизация, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Первой строкой должен быть шебанг (shebang), который указывает системе, каким интерпретатором выполнять скрипт.

Правильный вариант: #!/usr/bin/env bash

Почему именно так?

  • #!/bin/bash — жёстко указывает путь, который может отличаться в разных ОС (например, в некоторых BSD или контейнерах bash находится в /usr/local/bin/bash).
  • #!/usr/bin/env bash — более переносимая запись. Утилита env ищет bash в переменной PATH пользователя, что гарантирует использование предпочитаемой версии.

Пример минимального скрипта:

#!/usr/bin/env bash
# Это комментарий. Скрипт выводит приветствие и список файлов.
echo "Скрипт запущен из под: $(whoami)"
ls -la

Перед запуском необходимо дать файлу права на выполнение:

chmod +x myscript.sh
./myscript.sh

Для скриптов, требующих строгой POSIX-совместимости (например, для Alpine Linux), можно использовать #!/bin/sh (но это уже не bash со всеми его расширениями).