2017-10-13 4 views
0

Lors de l'exécution de la partie suivante du script bash, il parcourt le tableau outter avant de faire une boucle dans le tableau interne ou du moins c'est ce qu'il semble faire.bash boucle imbriquée passant par la boucle externe avant de parcourir la boucle interne

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 

La sortie ressemble à ceci:

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" 

Probablement juste faire quelques erreurs stupides. Mais en arrière-plan de ce que je fais ici, je passe un ticket Jira à ce script bash et je frise le ticket via la version 2 d'Atlassian et j'exécute le JSON comme ci-dessus, puis je récupère les tickets liés en les jetant dans linkedTickets [@] et en bouclant cela à quelques reprises dans le script pour ensuite boucler ces tickets pour générer mes logs de curl, et une fois terminé, je cherche des dépendances, les deux boucles ci-dessus avec lesquelles j'ai des problèmes sont Il suffit de chercher dans les # issuelink pour trouver la dérive de ce ticket #, mais il est bouclé par $ i dans la boucle pour $ j jusqu'à la fin au lieu de une fois par $ i et tout le long de $ j avant de revenir à $ i . Est-ce un cas d'utilisation d'une boucle for quand je devrais utiliser une boucle while à l'intérieur?

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" 

Je me réjouis de tous les commentaires, je l'espère je ne vais pas martelée à dur pour ma syntaxe que je suis sûr qu'il est difficile, au mieux, très probablement incorrecte.

Répondre

0

Prenez les citations de vos entrées de boucle.

for i in "${a[*]}"; do echo $i; done 
1 2 3 

for i in ${a[*]}; do echo $i; done 
1 
2 
3