Android

Баш Шебанг

Relax video | with gorgeous Arina and Nissan Skyline ECR33.

Relax video | with gorgeous Arina and Nissan Skyline ECR33.

Оглавление:

Anonim

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

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

Директива интерпретатора Шебанга имеет следующий вид:

#!interpreter

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

Примеры:

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

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

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

Есть два способа использовать директиву Шебанга и установить интерпретатор.

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

    #!/bin/bash

    Используя утилиту env :

    #!/usr/bin/env bash

Преимущество использования второго подхода состоит в том, что он будет искать исполняемый файл bash в $PATH окружения $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, вам нужно запустить скрипт, явно указав требуемую оболочку.

Например, чтобы запустить сценарий, в котором #!/bin/sh указан в строке Shebang, используя оболочку bash , введите:

bash hello_world

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

Вывод

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

терминал bash