最近新しい技術を再び学び始めました。そのうちのいくつかはスクリプトのための私の試みです。
まず、1つのスクリプトから複数のパッケージの最新バージョンを抽出したいと思います。これを行うには、バージョン番号を変数にインポートし、その変数をダウンロードURLに入力しました。
だから、次は「動作します」(あなたのいくつかはこのパッケージを認識し、私が何をしているのかを知ることができます)...しかし、これが「最高」ではないことを知っています。満足していません。私が知ればおそらくもっとうまくいくでしょう。
ループを停止するには「中断」が必要なため、さまざまな「while」オプションがどのように機能するかを理解していないようです。最初は「for」ループを入れ子にすることを考えましたが…それはもっと見苦しいようです。
あるいは、私は仕事に間違ったツールを使っているかもしれません。
while true; do
crictlver=$(curl -s "https://api.github.com/repos/kubernetes-sigs/cri-tools/releases/latest" | jq -r .tag_name)
runcver=$(curl -s "https://api.github.com/repos/opencontainers/runc/releases/latest" | jq -r .tag_name)
cniver=$(curl -s "https://api.github.com/repos/containernetworking/plugins/releases/latest" | jq -r .tag_name)
containerdver=$(curl -s "https://api.github.com/repos/containerd/containerd/releases/latest" | jq -r .tag_name)
containerdvernum=$( curl -s "https://api.github.com/repos/containerd/containerd/releases/latest" | jq -r .tag_name | sed 's/^v//')
k8sver=$(curl -s "https://storage.googleapis.com/kubernetes-release/release/stable.txt")
wget --timestamping \
https://github.com/kubernetes-sigs/cri-tools/releases/download/${crictlver}/crictl-${crictlver}-linux-amd64.tar.gz \
https://github.com/opencontainers/runc/releases/download/${runcver}/runc.amd64 \
https://github.com/containernetworking/plugins/releases/download/${cniver}/cni-plugins-linux-amd64-${cniver}.tgz \
https://github.com/containerd/containerd/releases/download/${containerdver}/containerd-${containerdvernum}.linux-amd64.tar.gz \
https://storage.googleapis.com/kubernetes-release/release/${k8sver}/bin/linux/amd64/kubectl \
https://storage.googleapis.com/kubernetes-release/release/${k8sver}/bin/linux/amd64/kube-proxy \
https://storage.googleapis.com/kubernetes-release/release/${k8sver}/bin/linux/amd64/kubelet;
break
done
この問題を圧縮する方法に関するアイデア、提案、フィードバックをいただきありがとうございます。