/ / svuota la variabile quando si invia in background usando export - bash, for-loop, background

variabile vuota quando si invia allo sfondo usando export - bash, for-loop, background

Sto creando una sitemap da mysql e per velocizzare le cose vorrei mandare la mia funzione in background. Quando lo faccio, il "$SITEMAP" la variabile appare vuota.

quello che ho provato è l'impostazione dell'esportazione SITEMAP="$SITEMAP"

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

ps: senza inviare allo sfondo la funzione "xml", lo script funziona correttamente.

risposte:

1 per risposta № 1

Perché la shell in background è un processo diverso. Il resto è spiegato ad es. Qui.


1 per risposta № 2

Quando chiami

 xml &

si avvia un processo diverso, quindi il export è valido solo nell'ambiente di quest'ultimo.

Rimuovi il & e funzionerà