На этот вопрос уже есть ответ:
почему мы используем shebang в начале файл сценария оболочки. работает ли сценарий без него.
Я пробовал запустить его без shebang в сценарии оболочки, но он не запустился.
Когда файл script
запускается с директивы хижины
#!langpath args
и установили полномочия выполнения, Unix "заменит его"
exec langpath args path-to-the-script.
Это пути, обычно:
langpath
определяет язык, который будет использоваться, ответ должен быть путем исполняемого интерпретатора (программирование) язык (исключая: '/usr/bin/python')#!...
директива как комментарий Различные оболочки поддерживают различные функции. Для предоставления эффективного совета ShellCheck должен знать, на какой оболочке сценарий собирается работать. Вы получите различные числа предупреждений о разных вещах в зависимости от Вашей целевой оболочки.
ShellCheck обычно определяет Вашу целевую оболочку от хижины (наличие, например. #!/bin/sh
как первая строка). Оболочка может также быть указана от CLI с -s
, например. shellcheck -s sh file
.
Если Вы не указываете хижину, ни -s
, ShellCheck дает это сообщение и возобновляет некоторое значение по умолчанию (удар).
Обратите внимание, что эта ошибка не может быть проигнорирована с директивой. Это не предложение для улучшения сценария, а предупреждения, что ShellCheck испытывает недостаток в информации, это должно быть полезно.