Diferença entre set -g e set -x

0

No momento, estou migrando das configurações do bash para o fish e fiquei travando a tradução das minhas exportações do bash over. Parece que há três maneiras de fazer isso em Fish que realizam o trabalho, mas não sei dizer qual delas devo usar, ou se elas têm efeitos colaterais dos quais não tenho conhecimento

set -g VAR value
set -x VAR value
set -xg VAR value

Certamente, nem todos fazem a mesma coisa. Alguém pode explicar quais são as diferenças e em que situações cada uma é apropriada, por favor?

    
por 11th Hour Worker 27.05.2018 / 22:59

1 resposta

3

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.

    
por 28.05.2018 / 00:16

Tags