Linux

如何設置將在 shebang 中受到尊重的命令別名

  • January 21, 2021

我在我的 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中尊重的php命令設置別名?

不,因為 shebang 是由不知道或不關心您的特定於 shell 的別名和環境(例如 $PATH)的核心解析的(這就是為什麼您必須在 shebang 中提供完整路徑的原因)。您可以做的是創建php一個指向特定 php 版本的符號連結,並將包含它的目錄添加到您的 PATH 中,以便env.

引用自:https://serverfault.com/questions/1050707