Hallo,
ich möchte mehrere Internetseiten gleichzeitig abfragen und deren Inhalt in einer Variable ablegen.
Dazu mache ich erstmal das:
fetch sieht so aus:
Wenn ich $tmp in der fetch-Funktion ausgebe, bekomme ich auch den Inhalt zu sehen. ABER, wenn ich später im Hauptprogramm die Variable auswerten möchte, ist sie leer. Ich weiß nicht, wie ich das Ding global bekomme. 'declare -ag' habe ich schon versucht. Kann das daran liegen, dass fetch in den Hintergrund geschickt wird und die Variable dann auch nicht mehr zurück darf? Was kann man da tun? Die Setenabrufe sollen auf jeden Fall parallel laufen. Sequentiell ist das viel zu lahm...
ich möchte mehrere Internetseiten gleichzeitig abfragen und deren Inhalt in einer Variable ablegen.
Dazu mache ich erstmal das:
Bash:
i=1
while (( i <= $#URL )); do
fetch $i "${URL[$i]}" &
(( i++ ))
done
fetch sieht so aus:
Bash:
fetch() {
tmp[$1]="$(curl "$2")"
#echo "${tmp[$1]}"
return 0
}
Wenn ich $tmp in der fetch-Funktion ausgebe, bekomme ich auch den Inhalt zu sehen. ABER, wenn ich später im Hauptprogramm die Variable auswerten möchte, ist sie leer. Ich weiß nicht, wie ich das Ding global bekomme. 'declare -ag' habe ich schon versucht. Kann das daran liegen, dass fetch in den Hintergrund geschickt wird und die Variable dann auch nicht mehr zurück darf? Was kann man da tun? Die Setenabrufe sollen auf jeden Fall parallel laufen. Sequentiell ist das viel zu lahm...