我在我的 Linux 服务器上运行多个版本的 PHP。我在 bashrc 中添加了一个别名,以将php
命令指向特定版本alias php='/usr/bin/php7.3'
。
当我实际使用 php 命令执行 PHP 脚本时,这可以按预期工作,例如php myscript.php
但是,如果我创建myscript.php
一个可执行文件并将 shebang#!/usr/bin/env php
放在顶部,它会使用默认版本的 PHP 执行脚本,并且不使用我的 bashrc 中定义的别名。
我知道我可以将 shebang 更改为#!/usr/bin/env /usr/bin/php7.3
,但我需要全局,而不是逐个文件。
php
是否可以为shebang 中尊重的命令设置别名?
不,因为 shebang 是由不知道或不关心您的特定于 shell 的别名和环境(例如 $PATH)的内核解析的(这就是为什么您必须在 shebang 中提供完整路径的原因)。您可以做的是创建
php
一个指向特定 php 版本的符号链接,并将包含它的目录添加到您的 PATH 中,以便env
.