Mit welchem Kommando können Sie die Variable FOO aus der Prozessumgebung entfernen?
export -n FOO
unenv FOO
unset FOO
FOO=
LPI-Lernziel Auf der Kommandozeile arbeiten (103.1)
FOO= (Antwort 4) leert die Variable FOO, egal ob sie in der Umgebung
steht oder nicht -- nicht das, was wir hören wollen. unset FOO (Antwort
3) löscht FOO komplett; ebenfalls falsch. Ein unenv-Kommando (Antwort
2) gibt es gar nicht. Also ist Antwort 1 richtig: Mit export -n
wird eine Variable aus der Prozessumgebung entfernt; sie steht aber auch
danach noch als gewöhnliche Shellvariable zur Verfügung.
Nicht angemeldet
Testcase
dutCh (eingetragen als Rene Rudolph) · 8. Mai 2012, 15:46
592 0 ~$ export FOO=bar
593 0 ~$ echo $FOO
bar
594 0 ~$ sh -c 'echo $FOO'
bar
595 0 ~$ export -n FOO
596 0 ~$ sh -c 'echo $FOO'
597 0 ~$ echo $FOO
bar
598 0 ~$ sh -c "echo $FOO" # Zauberei ;-)
bar
599 0 ~$ set -xv
600 0 ~$ sh -c "echo $FOO"
sh -c "echo $FOO"
+ sh -c 'echo bar'
bar
601 0 ~$ sh -c 'echo $FOO'
sh -c 'echo $FOO'
+ sh -c 'echo $FOO'
602 0 ~$ export FOO
export FOO
+ export FOO
603 0 ~$ sh -c 'echo $FOO'
sh -c 'echo $FOO'
+ sh -c 'echo $FOO'
bar
604 0 ~$