Como eu desabilito uma variável na linha de comando?

66

Eu tentei o seguinte comando para definir o proxy em yaourt :

export ALL_PROXY=http://proxy.example.com:8080

A questão é como desmarcar o proxy em yaourt ? Em geral, como posso cancelar o valor de uma variável no shell atual?

    
por Hamed Kamrava 03.12.2013 / 21:24

2 respostas

92

Para remover uma variável de ambiente, execute

unset ALL_PROXY

Observe que uma variável de ambiente só entra em vigor em um programa e no programa que ele inicia. Se você definir uma variável de ambiente em uma janela do shell, isso não afetará outras janelas do shell.

Se você adicionou export ALL_PROXY=… a um arquivo de inicialização, remova-o de lá.

Você pode executar export sem argumentos para ver quais variáveis de ambiente estão definidas no shell atual.

Lembre-se de que para disponibilizar uma variável do shell para os programas iniciados por esse shell, você precisa exportá-lo, executando export VAR após a atribuição VAR=VALUE ou combinando os dois ( export VAR=VALUE ).

    
por 04.12.2013 / 01:46
15

Para cancelar a configuração de uma variável vinculada no bash use unset VARIABLE ( unset ALL_PROXY no seu caso). Este comando, na verdade, exclui a variável. Você também pode definir o valor de uma variável para esvaziar por

VARIABLE=

ou

VARIABLE=""

A diferença é que os dois últimos comandos não excluem a variável. Você pode ver a diferença usando o -u flag com set para forçá-lo a tratar as variáveis não definidas como um erro ao substituir:

/home/user1> var=""
/home/user1> echo $var

/home/user1> set -u
/home/user1> echo $var

/home/user1> unset var
/home/user1> echo $var
-bash: var: unbound variable

No exemplo acima, o bash reclama que var está desvinculado (depois de desabilitar seu valor) que é o erro esperado (note que isso não acontece no segundo comando echo, significando que var tem um valor que é empty ou null ).

    
por 04.12.2013 / 09:59

Tags