/ / leere Variable beim Senden an Hintergrund mit Export - Bash, For - Loop, Hintergrund

leere Variable beim Senden in den Hintergrund mit Export - Bash, For - Loop, Hintergrund

Ich baue eine Sitemap aus mysql auf, und um die Sache zu beschleunigen, möchte ich meine Funktion in den Hintergrund senden "$SITEMAP" Variable erscheint leer.

Was ich versucht habe, ist das Exportieren SITEMAP="$SITEMAP"

for ((i=0; i<CNT; i++)); do
xml() {
...
export SITEMAP="$SITEMAP"
}
xml &
echo -e "$SITEMAP"
done

ps: ohne die "xml" -Funktion in den Hintergrund zu senden, funktioniert das Skript korrekt.

Antworten:

1 für die Antwort № 1

Weil die Hintergrundschale ein anderer Prozess ist. Der Rest wird z. Hier.


1 für die Antwort № 2

Wenn du anrufst

 xml &

Sie starten einen anderen Prozess, dann die export gilt nur in der Umgebung des Letzteren.

Entferne das & und es wird funktionieren