Переменные оболочки и окружения в Bash отличаются тем, где и для чего они используются. 14
Переменные окружения определяются для текущей оболочки и наследуются любыми дочерними оболочками или процессами. 24 Такие переменные используются для передачи информации процессам, запущенным из оболочки. 4 Например, к ним относятся SHELL (оболочка, в которой выполняется интерпретация команд пользователя), USER (текущий пользователь системы) и другие. 1
Переменные оболочки, в свою очередь, содержатся исключительно в оболочке, внутри которой они определены. 1 Такие переменные используются для отслеживания кратковременных данных, например, текущего рабочего каталога. 1 К переменным оболочки относятся BASHOPTS (список опций, которые используются при исполнении оболочки bash), BASH_VERSION (версия оболочки bash) и другие. 1
Таким образом, главное отличие в том, что переменные окружения доступны не только в текущей оболочке, но и в дочерних процессах, а переменные оболочки существуют только в контексте текущей сессии и не видны в дочерних процессах. 5