jqの結果を変数に格納する
疲れていた自分を鼓舞するために机に頭を打ち付け、額を血で滲ませるという愚行を犯してしまった最近の私である。暑いと人間は頭がおかしくなるのだと実感した。
今日シェルスクリプトを書いた際に jq の結果を変数に格納したいと思ったので備忘録に残すことにした。
今回、Zigのセットアップ用のスクリプトを書こうと思い、下記のURLから指定した項目の値だけを変数に格納したいと考えた。
(このURLはZigの各バージョンの tarball
のURLなどがJSON形式で格納されている)
https://ziglang.org/download/index.json
今回このJSONをcurlで取得して、 master
の x86_64-linux
の tarball
のURLを取得したかった。
jqの結果を変数に格納する
最初下記のようにすることで変数にURLを格納していたが、これだとダブルクオートがついたままの結果が格納されることになる。
これをこのあと、wgetに食わせたかったので、ダブルクオートを取りたかった。
url=$(curl https://ziglang.org/download/index.json | jq '.master."x86_64-linux".tarball') echo ${url}
-rオプションを付けることでダブルクオートを取り除ける
-r
オプションを付けることでダブルクオートを取り除けたので、下記のように実施し、取得結果をそのままwgetに食わせることに成功した。
url=$(curl https://ziglang.org/download/index.json | jq -r '.master."x86_64-linux".tarball') # wgetを使って取得したURLからtarballをダウンロードする。 wget ${url}
それほど定期的にシェルスクリプトを触っているわけではないので、触るたびにいろいろなことを忘れてしまっている。
そんな自分の記憶力の無さに辟易もするが、シェルスクリプトを書く楽しさというのはいつも変わらない。
そんなことを考えながら茹だるような暑い夏の夜を過ごしている。