Что делает экспорт в BASH? [дубликат]

Возможный Дубликат:
Разница между "a=b" и "экспортировать a=b" в баш

Трудно признать, но я никогда по-настоящему не понимал, что именно export делает с переменной среды. Я знаю, что если я не экспортирую переменную, я иногда не могу видеть ее в дочерних процессах, но иногда кажется, что я могу. Что на самом деле происходит, когда я говорю

export foo=5

И когда я не должен экспортировать переменную?