【发布时间】:2017-10-13 17:07:53
【问题描述】:
当执行 bash 脚本的以下部分时,它会先循环通过外部数组,然后再循环通过内部数组,或者至少看起来是这样。
for i in "${linkedTickets[@]}"
do
array=($( cat ${WORKDIR}/${i}_curl.log |
egrep 'Depend' |
sed 's/depends on//g; s/[][\"[:space:]]//g; s/fields,//g; s/issuelinks,//g; s/,type//g; s/,outward//g; s/outwarddependson//g; s/,name//g; s/Depend//g;' | tr -d '\040\011\015' | tr '\n' ' '))
var=$i
if [ ${#array[@]} -ne 0 ]; then
echo ""
echo "${!array[@]} -- ${array[@]}"
echo "$var"
for j in "${array[@]}"
do
cat "$WORKDIR/${var}_curl.log" |
grep -R "\[\"fields\",\"issuelinks\",${j},\"outwardIssue\",\"fields\",\"status\",\"name\"\]" |
sort -u
done
fi
done
输出如下所示:
0 -- 0
PROJ-198
PN/PROJ-16114/PROJ-1233_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-188_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-198_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-204_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-209_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-1371_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "On Hold"
0 1 2 3 4 5 -- 0 1 2 3 4 5
PROJ-186
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-1142_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-172_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-180_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-182_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-185_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-186_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-187_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-188_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-198_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-204_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-209_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-1371_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "On Hold"
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-172_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-180_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-182_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-185_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-186_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-187_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-188_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-200_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Deployed"
PN/PROJ-16114/PROJ-201_curl.log:["fields","issuelinks",1,"outwardIssue","fields","status","name"] "Deployed"
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-180_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-182_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-185_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-186_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-198_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Deployed"
PN/PROJ-16114/PROJ-199_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Deployed"
PN/PROJ-16114/PROJ-209_curl.log:["fields","issuelinks",2,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",3,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-182_curl.log:["fields","issuelinks",3,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-186_curl.log:["fields","issuelinks",3,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-209_curl.log:["fields","issuelinks",3,"outwardIssue","fields","status","name"] "Deployed"
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",4,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-186_curl.log:["fields","issuelinks",4,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",5,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-186_curl.log:["fields","issuelinks",5,"outwardIssue","fields","status","name"] "Deployed"
0 -- 0
PROJ-209
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-1142_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-172_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-180_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
PN/PROJ-16114/PROJ-1371_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "On Hold"
可能只是犯了一些愚蠢的错误。但是我在这里所做的一些背景,我正在将 Jira 票证传递给这个 bash 脚本,它通过 Atlassian 的版本 2 api 卷曲票证并像上面那样解析 JSON,然后我正在获取链接的票证将它们放入linkedTickets [@]并在脚本中循环几次,然后卷曲这些票证以生成我的卷曲日志,一旦完成,我正在搜索依赖项,上面我遇到问题的两个循环是只是在 issuelink #'s 中搜索以找到一张票的依赖关系 #,但是它在循环中循环 $i 以完成 $j,而不是通过一次 $i 并一直通过 $j 然后返回 $i .当我应该在内部使用 while 循环时,这是使用 for 循环的情况吗?
0 -- 0
PROJ-189
PN/PROJ-16114/PROJ-189_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
0 -- 0
PROJ-195
PN/PROJ-16114/PROJ-195_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
0 -- 0
PROJ-200
PN/PROJ-16114/PROJ-200_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
0 -- 0
PROJ-209
PN/PROJ-16114/PROJ-16114_curl.log:["fields","issuelinks",0,"outwardIssue","fields","status","name"] "Closed"
我期待任何反馈,希望我的语法不会受到重创,因为我确信它充其量是粗略的,很可能是不正确的。
【问题讨论】: