Linux
如何設置將在 shebang 中受到尊重的命令別名
我在我的 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
.