URL出力に基づいてgrepオプションをカスタマイズする

URL出力に基づいてgrepオプションをカスタマイズする

curl最新のカーネルバージョンを見つけるにはコマンドを使用し、ローカルカーネルバージョンを見つけるにはコマンドを使用したいと思います。grepuname -r

curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit | grep "Latest 64 bit *$(uname -r)"

これは私のコマンドのそれぞれの結果です。

注文する

curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit

上記コマンドの出力

{"label": "Latest 64 bit (4.14.12-x86_64-linode92)", "kvm": true, "id": "linode/latest-64bit", "pvops": true, "architecture": "x86_64", "xen": true, "version": "4.14.12"}

注文する

uname -r

コマンド出力

4.14.12-x86_64-linode92

curl output of Linode APIコラボレーションに助けが必要ですgrep expression

カーネルアップデートでLinode API URLを使用できる場合は、grepコマンドを使用してLinode API URLと比較したいと思います。

答え1

なぜあなたが使いたいのかgrepは私にとって謎です。希望の出力は次のとおりです。

curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit | sed 's/.*(//;s/).*/\n/;'
4.14.12-x86_64-linode92

比較は次のとおりです。

#!/bin/bash
thiskernel=$(uname -r)
latest=$(curl -s https://api.linode.com/v4/linode/kernels/linode/latest-64bit | sed 's/.*(//;s/).*/\n/;')
if [ "$latest" = "$thiskernel" ] ; then
    echo "Running the latest kernel $latest"
else
    echo "Whoah! check it out! there is a new kernel $latest,"
    echo " and you are running an old legacy $thiskernel"
fi

関連情報