저는 다양한 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
}