![.bashrc 中的路径相关命令](https://linux22.com/image/173118/.bashrc%20%E4%B8%AD%E7%9A%84%E8%B7%AF%E5%BE%84%E7%9B%B8%E5%85%B3%E5%91%BD%E4%BB%A4.png)
我正在寻找一种方法来简化不同的 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;
}
这工作正常,但我现在正在寻找一种传输标准输入的方法,以便可以进行“作曲家安装”。我希望这个问题是可以理解的
答案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
}
将"$@"
扩展为函数的参数,单独引用(双引号是必需的)。
另请注意,当调用 just 时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
}