Ну, правда в том, что вы можете в вашей ситуации опустить инструкцию экспорта.Попробуйте: откройте подоболочку (набрав bash
), затем установите переменную PATH на другое значение без ее экспорта, затем откройте другое (на этот раз набрав bash --norc
, чтобы избежать возможных ошибок из .bashrc из-заизмененный путь), и сделайте echo $PATH
.Вы увидите, что переменная PATH изменилась, даже если вы ее не экспортировали.
Причина, однако, не в том, что PATH каким-либо образом особенным (то есть экспортируется автоматически с помощью некоторой внутренней магии оболочки bash),Он экспортируется, потому что переменная, которую вы помечаете один раз для экспорта, помещается в среду - это то, что на самом деле означает «экспорт» - и, следовательно, наследуется всеми дочерними процессами.В случае PATH очень вероятно, что какой-то PATH уже установлен в / etc / profile, и, конечно, вы найдете export PATH
в этом файле.Этот файл создается всякий раз, когда bash запускается как оболочка входа в систему и, следовательно, наследуется всеми другими процессами, порожденными из него.
Тем не менее, неплохо бы экспортировать PATH в ваши собственные точечные файлы, потому что ваш bash будетнезависимо от среды родительского процесса.В конце концов, можно построить пример, в котором интерактивная оболочка bash без входа в систему вызывается процессом, который не имеет PATH в своей среде.