别名在 #!/usr/bin/env php 脚本中不起作用

别名在 #!/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 phpphp在当前目录中查找名为的可执行文件$PATH;它不关注别名、shell 函数等。如果您希望它执行 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(或其他适当的启动脚本)。

相关内容