Im Beispiel unten habe ich eine exportierte Variable. Der Name wird als Local in einer Funktion wiederverwendet. In der Funktion befindet sich ein untergeordneter Prozess, der die ENV-Variable mit demselben Namen verwendet.Was ist das erwartete Verhalten von "local + x" in einer Funktion mit einer exportierten Variablen in zsh vs bash?
Bash wieder verwendet den ursprünglichen Wert exportiert, während zsh die Variable führt zum Löschen:
function the_func {
local +x MY_VAR="new value"
my -child -process # === in zsh: $MY_VAR is undefined
# === in bash: $MY_VAR="original"
}
export MY_VAR="original"
the_func
Ist das ein Fehler in zsh oder in Bash? Oder nur kleine Unterschiede zwischen den beiden?