최근에 새로운 기술을 다시 배우기 시작했습니다. 그 중 일부는 스크립팅에 대한 나의 시도입니다.
먼저, 하나의 스크립트에서 여러 패키지의 최신 버전을 추출하고 싶습니다. 이를 위해 버전 번호를 변수로 가져온 다음 해당 변수를 다운로드 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
이 문제를 압축하는 방법에 대한 아이디어, 제안 또는 피드백을 주시면 감사하겠습니다.