Нет, они не все делают одно и то же. -x
Флаг ортогональны -g
, -l
и -u
флаги. Первый просто устанавливает атрибут экспорта в var. Последние три определяют область действия вар. Вы можете иметь глобальную, неэкспортированную VAR
и внутри функцию do set -lx VAR value
для создания экспортируемого экземпляра с локальной областью действия. Когда управление возвращается из функции, глобальная область VAR
снова появляется и не будет экспортирована.
Если вы используете последнюю версию (2.7, возможно, 2.6), вы можете set --show VAR
отобразить значения во всех трех областях и узнать, экспортируется ли каждая из них.