以下のようにcurlコマンド出力を取得しています
curl -s https://api.github.com/repos/harshavardhanc/dockerfile-ansible/pulls\?state\=all | jq -r '.[]|(.number|tostring)+" "+.user.login+" "+.created_at+" "+.merged_at'
5 test 2019-09-27T11:06:23Z 2019-09-27T11:09:28Z
4 test1 2019-09-26T16:56:40Z 2019-09-26T16:57:02Z
3 test2 2019-09-26T16:54:25Z 2019-09-26T16:54:55Z
2 test3 2019-09-26T16:52:59Z 2019-09-26T16:55:19Z
1 test4 2019-09-26T16:46:52Z 2019-09-26T16:47:25Z
そして私はそれを変数に格納し、変数をエコーして値を別のコマンドに渡して出力を解析しようとしています。しかし、変数をエコーしようとすると、すべての行が1行として出力されます。
prlist=$(curl -s https://api.github.com/repos/harshavardhanc/dockerfile-ansible/pulls\?state\=all | jq -r '.[]|(.number|tostring)+" "+.user.login+" "+.created_at+" "+.merged_at')
echo $prlist
5 test 2019-09-27T11:06:23Z 2019-09-27T11:09:28Z 4 test1 2019-09-26T16:56:40Z 2019-09-26T16:57:02Z 3 test2 2019-09-26T16:54:25Z 2019-09-26T16:54:55Z 2 test3 2019-09-26T16:52:59Z 2019-09-26T16:55:19Z1 test4 2019-09-26T16:46:52Z 2019-09-26T16:47:25Z
別の行でこの印刷を回避するにはどうすればよいですか?助けてください。
あなたが説明するのは、引用符で囲まれていない変数echo
ingの標準的な動作です。
$ prlist=$(curl -s https://api.github.com/repos/harshavardhanc/dockerfile-ansible/pulls\?state\=all |
jq -r '.[]|(.number|tostring)+" "+.user.login+" "+.created_at+" "+.merged_at')
$ echo $prlist
5 SMYALTAMASH 2019-09-27T11:06:23Z 2019-09-27T11:09:28Z 4 ganesh-28 2019-09-26T16:56:40Z 2019-09-26T16:57:02Z 3 ganesh-28 2019-09-26T16:54:25Z 2019-09-26T16:54:55Z 2 ganesh-28 2019-09-26T16:52:59Z 2019-09-26T16:55:19Z 1 ganesh-28 2019-09-26T16:46:52Z 2019-09-26T16:47:25Z
$prlist
は引用されません。引用するとどうなるかと比較してください。
$ echo "$prlist"
5 SMYALTAMASH 2019-09-27T11:06:23Z 2019-09-27T11:09:28Z
4 ganesh-28 2019-09-26T16:56:40Z 2019-09-26T16:57:02Z
3 ganesh-28 2019-09-26T16:54:25Z 2019-09-26T16:54:55Z
2 ganesh-28 2019-09-26T16:52:59Z 2019-09-26T16:55:19Z
1 ganesh-28 2019-09-26T16:46:52Z 2019-09-26T16:47:25Z
しかし、なぜ変数を使用するのでしょうか。 curl
の出力を直接解析するだけです:
curl ... | jq ... | someOtherCommand
このような:
curl -s https://api.github.com/repos/harshavardhanc/dockerfile-ansible/pulls\?state\=all |
jq -r '.[]|(.number|tostring)+" \
"+.user.login+" "+.created_at+" "+.merged_at'curl \
-s https://api.github.com/repos/harshavardhanc/dockerfile-ansible/pulls\?state\=all |
someOtherCommand