私はさまざまなPHPバージョンとComposerのパスを単純化する方法を探しています。私は道を見つけたこの回答これは私によく合うようです。
理解を深めるために、以下を実装しようとします。
function composer ()
{
if [ "$PWD" == "/home/vhosts/domainName/httpdocs" ]; then
/usr/bin/php7.3 lib/composer
elif [ "$PWD" == "/home/vhosts/domainName2/httpdocs" ]; then
/usr/bin/php5.6 composer.phar
else
composer
fi;
}
これはうまくいきますが、今では「作成者のインストール」を実行できるようにstdinをパイプする方法を探しています。この質問が理解できることを願っています。
答え1
関数から呼び出されるプログラムに関数の引数を渡します。
composer () {
if [ "$PWD" = "/home/vhosts/domainName/httpdocs" ]; then
/usr/bin/php7.3 lib/composer "$@"
elif [ "$PWD" = "/home/vhosts/domainName2/httpdocs" ]; then
/usr/bin/php5.6 composer.phar "$@"
else
command composer "$@"
fi
}
関数に拡張されるパラメータは"$@"
個別に引用されます(二重引用符が必要です)。
また、呼び出すときは関数の再帰呼び出しを使用する必要がありcomposer
ます。command composer
また、関数を移植可能にするために、いくつかのマイナーな構文問題を修正しました。
この機能を使うと
composer install
/home/vhosts/domainName/httpdocs
続く
/usr/bin/php7.3 lib/composer install
この機能の別の変形:
composer () {
case $PWD in
"/home/vhosts/domainName/httpdocs")
/usr/bin/php7.3 lib/composer "$@"
;;
"/home/vhosts/domainName2/httpdocs")
/usr/bin/php5.6 composer.phar "$@"
;;
*)
command composer "$@"
esac
}