![别名在 #!/usr/bin/env php 脚本中不起作用](https://linux22.com/image/628202/%E5%88%AB%E5%90%8D%E5%9C%A8%20%23!%2Fusr%2Fbin%2Fenv%20php%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我有一些以 开头的 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
;它不关注别名、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
(或其他适当的启动脚本)。