Что такое шебанг (#! / Bin / bash). [дубликат]

почему мы используем shebang в начале файл сценария оболочки. работает ли сценарий без него.

Я пробовал запустить его без shebang в сценарии оболочки, но он не запустился.

2
задан 18 May 2018 в 13:44

2 ответа

Когда файл script запускается с директивы хижины

#!langpath args

и установили полномочия выполнения, Unix "заменит его"

exec langpath args path-to-the-script.

Это пути, обычно:

  • langpath определяет язык, который будет использоваться, ответ должен быть путем исполняемого интерпретатора (программирование) язык (исключая: '/usr/bin/python')
  • язык должен принять файл сценария как аргумент
  • язык должен проигнорировать #!... директива как комментарий
2
ответ дан 2 December 2019 в 03:33

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

ShellCheck обычно определяет Вашу целевую оболочку от хижины (наличие, например. #!/bin/sh как первая строка). Оболочка может также быть указана от CLI с -s, например. shellcheck -s sh file.

Если Вы не указываете хижину, ни -s, ShellCheck дает это сообщение и возобновляет некоторое значение по умолчанию (удар).

Обратите внимание, что эта ошибка не может быть проигнорирована с директивой. Это не предложение для улучшения сценария, а предупреждения, что ShellCheck испытывает недостаток в информации, это должно быть полезно.

0
ответ дан 2 December 2019 в 03:33

Другие вопросы по тегам:

Похожие вопросы: