Una variabile della shell non è automaticamente una variabile d’ambiente. Con export viene passata ai processi figli:
APP_MODE=sviluppo
export APP_MODE
printenv APP_MODEPer assegnarla soltanto a un comando, in una shell POSIX:
APP_MODE=sviluppo comandoSostituisci comando con il programma da eseguire. Per eliminarla dalla shell corrente usa unset APP_MODE. Il cambiamento non modifica l’ambiente della shell padre né quello di processi già avviati.
env e printenv senza argomenti possono mostrare token, password e altri dati riservati. Per la diagnosi interroga solo i nomi necessari e non incollare un elenco completo nei log o in una segnalazione pubblica.
Verifica la differenza
APP_MODE=sviluppo
bash -c 'printf "valore figlio: %s\n" "${APP_MODE-non esportata}"'
export APP_MODE
bash -c 'printf "valore figlio: %s\n" "$APP_MODE"'Parti da una nuova shell in cui APP_MODE non sia già esportata. Il primo figlio mostra “non esportata”, il secondo “sviluppo”. Dopo la prova esegui unset APP_MODE.