Добавление #!something не учитывает PATH

Добавление #!something не учитывает PATH

В Linux добавление #!/bin/bash сообщает исполняемому файлу о необходимости его запуска с помощью bash.

Мне было интересно, почему это указано в полном пути? Я ожидал, что поскольку bin находится в пути, указанном в PATH, он найдет его, просто добавив #!bash

Это не то чтобы неудобство, просто любопытно. Спасибо.

решение1

Способ #!работает так, что за ним должен следовать полный путь к интерпретатору. Если вы хотите выполнить поиск, $PATHобычно используемая конструкция - #!/usr/bin/env<interpreter>, например

#!/usr/bin/env perl

будет искать perlв $PATH. Для получения дополнительной информации о том, почему это работает, см. страницу руководства дляокружающая средаихорошая дискуссияпод "Как /usr/bin/env узнает, какую программу использовать?" на этом форуме.

Связанный контент