2016-02-10 1 views
14

Возможно ли изменить значение переменной в Bash, а затем не экспортировать ее, не отменив ее полностью? То есть он все еще доступен для текущей оболочки, но не для подпроцессов.Есть ли у bash способ экспортировать переменную без ее снятия?

Вы всегда можете это сделать, но это некрасиво (и мне очень интересно):

export FOO 

#... 

_FOO=$FOO 
unset FOO 
FOO=$_FOO 

Ответы о других оболочек также приняты.

+3

код [dash' страница руководства '] (http://linux.die.net/man/1/dash) прямо говорится: *" единственный способ ип-экспорт переменная на отключенное это. "* – tripleee

+0

Что касается других оболочек: http://stackoverflow.com/q/33395668/1126841 – chepner

ответ

15
export -n FOO 

От help export:

Варианты:

  • -f относятся к оболочке функции
  • -n удалить свойство экспорта из каждого ИМЕНИ
  • -p дисплей список всех экспортироваться переменных и f УНКЦИИ