while循环不输出到日志文件

Sco*_*Bob 0 shell logs

我正在努力让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 bob@abcde.com:<token_id> --header Accept: application/json; (( i+=50 )); >>"${log}"; done
Run Code Online (Sandbox Code Playgroud)

我已经以各种形式测试了上述内容,如果我取出日志部分,脚本就会输出到屏幕上。

有谁知道为什么循环不会输出到我试图创建的日志?

pLu*_*umo 7

你有>> "$log",但它没有收到任何输入,因为它是在;.

要么把它放在后面done

while ... do ... done >> "$log"
Run Code Online (Sandbox Code Playgroud)

或在curl命令之后:

while ... do ... done >> "$log"
Run Code Online (Sandbox Code Playgroud)

另请注意,您应该引用您的--header--user字符串:

--header "Accept: application/json"
Run Code Online (Sandbox Code Playgroud)

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

for i in $(seq 0 50 700); do ... done
Run Code Online (Sandbox Code Playgroud)

总共:

curl ... >> "$log"; done
Run Code Online (Sandbox Code Playgroud)

或没有seq

for (( i=0; i <= 700; i += 50)); do
   ...
done
Run Code Online (Sandbox Code Playgroud)