while循环不输出到日志文件

while循环不输出到日志文件

我正在努力让curl脚本按预期工作,解决一些需要分页的问题。我的观点是......curl 部分有效,但我无法将输出记录到文件中。

#!/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"

此外,您可以更轻松地使用for-loop:

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

相关内容