我在 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 中尊重的命令设置别名?
答案1
是否可以为 shebang 中尊重的 php 命令设置别名?
不是,因为 shebang 是由内核解析的,它不知道也不关心你 shell 特定的别名和环境,例如 $PATH(这就是为什么你必须在 shebang 中提供完整路径的原因)。你可以做的是创建php
一个指向特定 php 版本的符号链接,并将包含它的目录添加到你的 PATH 前面,以便它被选中env
。