Änderungen an Umgebungsvariablen in einem Skript wirken sich nur auf die aufrufende Shell aus, wenn Sie das Skript wie folgt aufrufen:
. ./script.sh
Oder:
source ./script.sh
Nicht:
bash ./script.sh
Oder:
./script.sh
Dies liegt daran, dass die ersten beiden Methoden das Skript in der aktuellen Shell ausführen, während die letzten beiden eine Subshell starten und Umgebungsvariablenänderungen nicht aus Subshells nach oben übertragen werden.