Баш Шебанг

Баш Шебанг

Если вы изучаете скрипты Bash, читая код других людей, вы могли заметить, что первая строка в скриптах начинается с символов #! и пути к интерпретатору Bash.

Эта последовательность символов ( #! ) называется шебангом и используется для того, чтобы сообщить операционной системе, какой интерпретатор использовать для анализа оставшейся части файла.

Директива переводчика Шебанга

Директива интерпретатора Shebang имеет следующую форму:

 #!interpreter [arguments]
  • Директива должна быть первой строкой в скрипте.
  • Директива должна начинаться с shebang #!
  • Пробел после символов шебанга необязателен.
  • Интерпретатор — это полный путь к двоичному файлу (например: /bin/sh , /bin/bash ).
  • Аргументы интерпретатора необязательны.

Примеры:

  • #!/bin/bash — Использует bash для анализа файла.
  • #!/usr/bin/env perl — Использует команду env для поиска пути к исполняемому файлу perl .
  • #!/usr/bin/python Выполняет файл с использованием двоичного файла python .

Использование Shebang в скриптах Bash

Если шебанг не указан, а пользователь, запускающий скрипт Bash, использует другую оболочку, скрипт будет обработан интерпретатором по умолчанию, используемым этой оболочкой. Например, интерпретатор по умолчанию для bash — это bash , а для zshsh . Чтобы гарантировать, что ваш скрипт всегда будет интерпретироваться Bash, необходимо указать путь к исполняемому файлу с помощью шебанга.

Существует два способа использования директивы Shebang и настройки интерпретатора.

  1. Используя абсолютный путь к исполняемому файлу bash:

     #!/bin/bash
  2. Использование утилиты env :

     #!/usr/bin/env bash

Преимущество второго подхода заключается в том, что он будет искать исполняемый файл bash в пользовательской переменной окружения $PATH . Если существует несколько путей к bash , скрипт будет использовать первый из них.

При использовании первого параметра для добавления параметра в оболочку Bash передайте его интерпретатору. Например, для запуска скрипта в режиме отладки используйте #!/bin/bash -x . При использовании метода env для объявления параметра необходимо использовать set . Чтобы включить режим отладки, добавьте set -x после строки shebang.

Пример сценария

Давайте создадим простой скрипт с помощью Shebang, который выведет «Hello, World». Откройте текстовый редактор и вставьте следующую строку:

 nano hello_world

Привет, мир

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

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

 chmod +x hello_world

Теперь, если вы можете запустить скрипт, введя ./ и затем имя скрипта:

 ./hello_world
 Hello, World

Переопределение Шебанга

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

Например, чтобы запустить скрипт, в строке Shebang которого указано #!/bin/sh с помощью оболочки bash , нужно ввести:

 bash hello_world

Обратите внимание: не рекомендуется переопределять интерпретатор оболочки, так как это может привести к неожиданному поведению скрипта.

Заключение

К настоящему моменту вы должны хорошо понимать, что такое Shebang и как его использовать в своих скриптах Bash.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

терминал bash

Связанные руководства

Источник

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

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