我最近又重新开始学习新技能。其中一些是我尝试编写脚本。
首先,我想在一个脚本中提取多个包的最新版本。为此,我将版本号拉入变量,然后将该变量输入下载 URL。
所以下面的“作品”(你们中的一些人可能会认出这些软件包,并知道我在玩什么)......但我知道这不是“最佳”,而且我不满足于仅仅让某些东西起作用并且然后继续前进,当我知道我可能会做得更好时。
我认为我没有真正理解各种“while”选项是如何工作的,因为我需要其中的“break”来停止循环。我最初考虑嵌套“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
任何有关如何压缩此问题的想法、建议或反馈都将受到赞赏。