我实际上做的是通过调用
从github api获取json字符串curl -u <userName> https://api.github.com/orgs/<orgName>/repos > test
我没有直接这样做,因为为了让jq工作,我必须在开头添加{"result":
并在文件末尾添加}
。
现在我的脚本在 getthem
RESULT=$(cat test | jq ".result[] | .html_url");
COUNT=0
URLS=()
for line in $RESULT;
do
echo $COUNT $line
URLS[$COUNT]=$line
COUNT=$(($COUNT+1))
done
#DEBUG
echo $URLS
COUNT=0
for url in $URLS;
do
#DEBUG
echo $COUNT $url
#DO SOMETHING WITH RESULTS LATER
# clone --bare $url $<onlyRepoName>.git
COUNT=$(($COUNT+1))
done
我的问题:
当我调用bash ./getthem
时,第一个循环似乎有效,但在标有#DEBUG的回声中,只有一行添加到数组中。
这是我得到的输出
0 "https://github.com/<orgName>/<RepoName0>"
1 "https://github.com/<orgName>/<RepoName1>"
2 "https://github.com/<orgName>/<RepoName2>"
3 "https://github.com/<orgName>/<RepoName3>"
4 "https://github.com/<orgName>/<RepoName4>"
5 "https://github.com/<orgName>/<RepoName5>"
6 "https://github.com/<orgName>/<RepoName6>"
7 "https://github.com/<orgName>/<RepoName7>"
"https://github.com/<orgName>/<repoName0>" #this should be the whole array
0 "https://github.com/<orgName>/<repoName0>" #here again it should be all 8 entries...
我做错了什么?为什么不是URLS数组中的所有8个条目?
答案 0 :(得分:2)
要访问URLS
数组中的所有元素,您需要使用${URLS[@]}
,如下所示。
echo "${URLS[@]}"
COUNT=0
for url in "${URLS[@]}"
do
# ...
done