PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script mit Ebenen



KurzGedacht
16-10-2014, 15:06
Hallo zusammen,

ich benötige folgendes:

Ich möchte ein Script haben (gerne Bash), welches eine TargetID und eine Ebenenzahl als Startwerte bekommt.

Ich habe eine WebAPI, die wenn man ihr eine TargetID gibt einige weitere SourceIDs untereinander ausgibt (zwischen 0 und ziemlich vielen).

Also z.B. so:


TargetID=1234
curl -s http://domain.tld/$TargetID
4847
0584
2894


Die Source IDs können der API wiederum als TargetIDs gegeben werden. Das Script soll nun entsprechend der Ebenenzahl rekursiv die SourceIDs wieder als TargetIDs verwenden und mir am Ende eine Liste liefern in der SourceID und TargetID nebeneinander stehen und die Ebenen untereinander.
Da zu jeder TargetID mehrere Source IDs existieren sieht das dann etwa so aus:


##Ebene 1##
4847 1234
0584 1234
2394 1234
##Ebene 2##
7564 4847
8473 4847
2928 4847
2011 0584
2819 0584
5873 0584
1001 2394
2004 2394
##Ebene 3##
9827 7564
....


Die ##Ebene## Platzhalter sind nur zum Verständnis.

Mag mir jemand einen Hinweis geben, wie ich das möglichst geschickt umsetze? Meine Lösungsansätze sind irgendwie zu umständlich.

Danke.

Selene
18-10-2014, 05:25
#!/bin/bash

TargetID=(1234)
Level=3

until ((Level--<=0))
do
for t in ${TargetID }
do
Out=($(curl -s http://domain.tld/$t))
for s in ${Out }
do
echo $s $t
done
SourceID+=(${Out })
done
TargetID=(${SourceID })
((${#TargetID }<=0)) && break
SourceID=()
done