Não, nem todos fazem a mesma coisa. O sinalizador -x
é ortogonal aos sinalizadores -g
, -l
e -u
. O primeiro simplesmente define o atributo de exportação no var. Os últimos três definem o escopo da var. Você pode ter um global, unexported, VAR
e dentro de uma função set -lx VAR value
para criar uma instância no escopo local que é exportada. Quando o controle retorna da função, o escopo global VAR
volta a existir e não será exportado.
Se você estiver usando uma versão recente (2.7, talvez 2.6), você pode fazer set --show VAR
para exibir os valores em todos os três escopos e se cada um deles é exportado ou não.