我正在尝试创建一个命令,该命令将下载最新的.gz文件并在Dockerfile的容器上安装。我想到了这个,但我似乎无法正常工作。

curl -s https://api.github.com/repos/fullstorydev/grpcurl/releases/latest | grep 'linux_arm64.tar.gz' | cut -d : -f 2,3 | tr -d \" | wget -qi - | sudo tar -C /usr/local/bin -xz;

我总是得到这个错误

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
分析解答

像这样:

sudo -s
curl -s https://api.github.com/repos/fullstorydev/grpcurl/releases/latest |
    jq -r '.assets | .[] | select(.browser_download_url | contains("linux_arm64")) .browser_download_url' |
    xargs wget -O- |
    tar zxvf - |
    tee /usr/local/bin/grpcurl

请参阅https://github.com/stedolan/jq