Псевдоним не работает в сценарии с #!/ Usr/bin/env php
У меня есть несколько PHP-скриптов, которые начинаются с #!/usr/bin/env php, По умолчанию используется интерпретатор PHP 4.4, но для сценариев требуется PHP 5.3, поэтому я создал псевдоним в ~/.bashrc:
alias php="/usr/local/bin/php5-53LATEST-CLI"
Так зовет php -v показывает мне 5.3 но #!/usr/bin/env php использует еще 4.4. Я не буду менять сценарии. Так как я могу получить PHP 5.3 с #!/usr/bin/env php?
1 ответ
/usr/bin/env php ищет исполняемый файл с именем php в течении $PATH; он не обращает внимания на псевдонимы, функции оболочки и т. д. Если вы хотите, чтобы он выполнял php v5.3, вы должны поместить эту версию в каталог под именем phpи поместите этот каталог в свой PATH где-то перед каталогом, который содержит версию 4.4. Может быть, что-то вроде этого:
mkdir /usr/local/bin/php-overrides
ln -s /usr/local/bin/php5-53LATEST-CLI /usr/local/bin/php-overrides/php
...затем добавьте
PATH="/usr/local/bin/php-overrides:$PATH"
на ваш ~/.bash_profile (или другой соответствующий скрипт запуска).