バンドルマネージャを検出するためにコードを再設定し、値をキャプチャするための新しいパラメータを追加しました。
get_package_manager_install()
{
if [ -x "$(command -v $1)" ]; then echo "$1 add --no-cache $2"; # apk add --no-cache
elif [ -x "$(command -v $1)" ]; then echo "$1 install -y $2"; # apt install -y
elif [ -x "$(command -v $1)" ]; then echo "$1 install -y $2"; # dnf install -y
elif [ -x "$(command -v $1)" ]; then echo "$1 -av $2"; # emerge -av
elif [ -x "$(command -v $1)" ]; then echo "$1 -S --noconfirm $2"; # pacman -S --noconfirm
elif [ -x "$(command -v $1)" ]; then echo "$1 in $2"; # zypper in
else
echo "Unknown manager manager" &>/dev/null
fi
}
次に、2つのパラメータを入力して関数を実行します。
get_package_manager_install 'apk' "musl-locale"
get_package_manager_install 'apt' "locales locales-all"
get_package_manager_install 'dnf' "glibc"
get_package_manager_install 'emerge' "sys-libs/glibc"
get_package_manager_install 'pacman' "glibc"
get_package_manager_install 'zypper' "glibc"
Ubuntuで実行しましたが、結果は次のとおりです。
apt add --no-cache locales locales-all
この関数はUbuntuがAlpineだと思うようなif [ -x "$(command -v $1)" ]; then echo "$1 add --no-cache $2"
のでelif [ -x "$(command -v $1)" ]; then echo "$1 install -y $2"
現在locales locales-all
。