Вам нужен shebang во всех сценариях bash?

Предположим, у вас есть bash-скрипт B, который 9X_bash-function вы получаете из другого bash-скрипта A. B 9X_bash-script имеет набор определений переменных и функций. A 9X_shell-scripting - это основной сценарий драйвера. Вам нужна 9X_shell-script строка #! / Bin / bash поверх A и B? Что 9X_.bash-profile произойдет, если вы это сделаете, а что 9X_.bashrc нет?

24
0
3
Общее количество ответов: 3

Ответ #1

Ответ на вопрос: Вам нужен shebang во всех сценариях bash?

Shebang является обязательным только для 9X_shell-command тех скриптов, которые должны выполняться 9X_shellscript операционной системой так же, как двоичные 9X_bash исполняемые файлы. Если вы используете другой 9X_shell-script скрипт, то shebang игнорируется.

С другой 9X_shell-commands стороны. ЕСЛИ предполагается, что источник 9X_bashrc сценария должен быть получен, то по соглашению 9X_shell-script НЕ следует помещать в начале никаких символов 9X_.bashrc shebang.

40
0

Ответ #2

Ответ на вопрос: Вам нужен shebang во всех сценариях bash?

Shebang используется, если вы запускаете 9X_shell-script сценарий напрямую как исполняемый файл (например, с 9X_shellscript помощью команды ./script.sh). В этом случае он сообщает 9X_.bashrc операционной системе, какой исполняемый 9X_bash-script файл следует запустить.

Это не обязательно 9X_shell и не действует, если вы, например, пишете 9X_.bashrc bash ./script.sh или исходите скрипт.

21
2

  • Это также не требуется, если вы уже находитесь в приглашении bash - предполагается, что сценарий будет bash (и другие оболочки обычно пред ...

Ответ #3

Ответ на вопрос: Вам нужен shebang во всех сценариях bash?

Вы должны использовать shebang во всех скриптах, особенно 9X_bashrc в тех, которые используют какие-либо несовместимые 9X_shell с sh функции.

Например, в Debian оболочкой 9X_bash-script по умолчанию является тире (не bash). Если 9X_shell-scripting вы используете функцию bash-only и не указываете, что 9X_shell-script этот сценарий должен интерпретироваться 9X_shell-command bash, он может выйти из строя даже в Linux. Это 9X_shellscript почти наверняка выйдет из строя на Solaris 9X_.bash-profile или HP-UX.

Если ваш файл должен быть только 9X_shell источниками для другого скрипта, вы можете 9X_shell-commands опустить строку shebang, но не устанавливать 9X_shell разрешения для исполняемого файла. Также 9X_shellscript для таких файлов хорошо поддерживать совместимость 9X_shell с / bin / sh.

Я настоятельно рекомендую прочитать 9X_bashrc DashAsBinSh.

4
0