В Linux добавление #!/bin/bash сообщает исполняемому файлу о необходимости его запуска с помощью bash.
Мне было интересно, почему это указано в полном пути? Я ожидал, что поскольку bin находится в пути, указанном в PATH, он найдет его, просто добавив #!bash
Это не то чтобы неудобство, просто любопытно. Спасибо.
решение1
Способ #!
работает так, что за ним должен следовать полный путь к интерпретатору. Если вы хотите выполнить поиск, $PATH
обычно используемая конструкция - #!/usr/bin/env
<interpreter>, например
#!/usr/bin/env perl
будет искать perl
в $PATH
. Для получения дополнительной информации о том, почему это работает, см. страницу руководства дляокружающая средаихорошая дискуссияпод "Как /usr/bin/env узнает, какую программу использовать?" на этом форуме.