複数のPHP(8.1と7.3)があります。これを実行するとphp -v
7.3になります。
たとえば、magento 2ではPHPを使用していくつかのコマンドを実行する必要がありますが、php bin/magento cache:flush
php 8.1(/var/www/会社php8.1 bin/magento cache:flush
)しかし、例えば動作するために常にPHP 8バイナリを指定する必要はありません。
その特定のディレクトリにある場合は、常にPHP 8.1を使用するようにする方法はありますか?
答え1
これは、シェルで使用できる高速で汚れたラッパー関数です。たとえば、次のようにsh
なりますbash
。
php () (
case "$PWD/" in
/var/www/company/ ) c=php8.1 ;;
* ) c=php ;;
esac
exec "$c" "$@"
)
これで実行するのに十分で、php whatever …
それに応じて1つまたは別の実行可能ファイルが選択されます。php -v
他の場所で試してみてください/var/www/company
。
メモ:
/var/www/company/*
に置き換えることもできます/var/www/company/
。$PWD
pwd -L
印刷したい内容を保存します(開始部分を参照)。この回答)。何かを印刷したい場合がありますpwd -P
。その場合はを使用してくださいcase "$(pwd -P)/" in
。- 関数全体はサブシェルで実行されるため、「ローカル」であり、移植
c
できない機能はありませんlocal c
。結局サブシェルphp
は。php8.1
exec