2016-02-10 9 views
14

Ist es möglich, export eine Variable in Bash, dann später un-Export, ohne es vollständig zu deaktivieren? I.e. habe es immer noch für die aktuelle Shell verfügbar, aber nicht für Unterprozesse.Hat Bash eine Möglichkeit, eine Variable un-Export zu exportieren, ohne sie zu deaktivieren?

Sie können dies immer tun, aber es ist hässlich (und ich bin neugierig):

export FOO 

#... 

_FOO=$FOO 
unset FOO 
FOO=$_FOO 

Antworten zu anderen Shells auch angenommen.

+3

Die [ 'dash' Handbuch Seite] (http://linux.die.net/man/1/dash) heißt es ausdrücklich: *" der einzige Weg zu un-Export eine Variable nicht gesetzt ist es. "* – tripleee

+0

In Bezug auf andere Shells: http://StackOverflow.com/q/33395668/1126841 – chepner

Antwort

15
export -n FOO 

Von help export:

Optionen:

  • -f siehe Funktionen Shell
  • -n von jedem Namen die Export-Eigenschaft entfernen
  • -p Anzeige eine Liste aller exportierten Variablen und f Salbungen