/ / pusta zmienna przy wysyłaniu do tła za pomocą eksportu - bash, for-loop, background

pusta zmienna przy wysyłaniu do tła przy użyciu eksportu - bash, pętla for, tło

Tworzę mapę witryny z mysql i aby przyspieszyć tworzenie rzeczy, chciałbym wysłać moją funkcję do tła. Kiedy to zrobię, "$SITEMAP" zmienna jest pusta.

próbowałem ustawić eksport SITEMAP="$SITEMAP"

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

ps: bez wysyłania do tła funkcji „xml” skrypt działa poprawnie.

Odpowiedzi:

1 dla odpowiedzi № 1

Ponieważ powłoka w tle jest innym procesem. Reszta jest wyjaśniona np. tutaj.


1 dla odpowiedzi nr 2

Kiedy zadzwonisz

 xml &

zaczynasz inny proces, a następnie export jest ważny tylko w środowisku tego ostatniego.

Usunąć & i to zadziała