
ページングが必要ないくつかの問題がありますが、期待どおりに機能するようにカールスクリプトを取得しようとしています。私のポイントは...カール部分は機能しますが、出力をファイルに書き込むことができないことです。
#!/usr/bin/env bash
# Author: Scouse Bob
# ----------------------------------------
log="/tmp/bob.log">>"${log}"
i=0
while [[ $i -lt 700 ]]
do curl -i -X GET "https://bob_server.atlassian.net/rest/api/3/project/search?jql=ORDER%20BY%20Created&maxResults=50&startAt=$i" --user [email protected]:<token_id> --header Accept: application/json; (( i+=50 )); >>"${log}"; done
上記の内容をさまざまな形でテストしてみましたが、ログ部分を取り出すとスクリプトが画面に出力されます。
作成したいログにループが出力されない理由を知っている人はいますか?
答え1
があります>> "$log"
がにあるため、入力を受け付けません;
。
または後ろに置くdone
:
while ... do ... done >> "$log"
またはcurl
コマンドの後に:
curl ... >> "$log"; done
--header
また、文字列を引用する必要があります--user
。
--header "Accept: application/json"
また、-loopを使いやすくしますfor
。
for i in $(seq 0 50 700); do ... done
銃:
log="/tmp/bob.log">>"${log}"
for i in $(seq 0 50 700); do
curl -i -X GET "https://bob_server.atlassian.net/rest/api/3/project/search?jql=ORDER%20BY%20Created&maxResults=50&startAt=$i" --user "[email protected]:<token_id>" --header "Accept: application/json"
done >> "${log}"
またはseq
:
for (( i=0; i <= 700; i += 50)); do
...
done