O @coffeMug também pode transformar isso em uma resposta, você também pode roubar algumas informações a partir daqui: stackoverflow.com/a/12263914/1081936
terdon
além da resposta aceita, se houver um comando que você executa frequentemente que usa uma variável de ambiente que você prefere não definir ou alterar durante o restante da sessão do shell, você pode executá-lo como: $ ALL_PROXY=http://proxy.example.com:8080 yaourtisso definirá o envvar apenas para o comando executado. Você pode colocar quantas FOO=bar BAZ=batvariáveis desejar antes da execução do comando.
onlynone
Respostas:
113
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 é iniciado. Se você definir uma variável de ambiente em uma janela do shell, ela 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 exportsem argumentos para ver quais variáveis de ambiente estão definidas no shell atual.
Lembre-se de que para disponibilizar uma variável de shell para os programas iniciados por esse shell, é necessário exportá-la, executando export VARapós a atribuição VAR=VALUEou combinando as duas ( export VAR=VALUE).
Para desarmar uma variável vinculada no bash use unset VARIABLE( unset ALL_PROXYno seu caso). Este comando realmente exclui a variável. Você também pode definir o valor de uma variável como vazio 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 -usinalizador com setpara forçá-lo a tratar as variáveis não definidas como um erro ao substituir:
No exemplo acima, o bash reclama varé ilimitado (após desabilitar seu valor), que é o erro esperado (observe que isso não ocorre no segundo comando de eco, o que significa que varpossui um valor que é emptyou null).
unset ALL_PROXY
$ ALL_PROXY=http://proxy.example.com:8080 yaourt
isso definirá o envvar apenas para o comando executado. Você pode colocar quantasFOO=bar BAZ=bat
variáveis desejar antes da execução do comando.Respostas:
Para remover uma variável de ambiente, execute
Observe que uma variável de ambiente só entra em vigor em um programa e no programa que é iniciado. Se você definir uma variável de ambiente em uma janela do shell, ela 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 de shell para os programas iniciados por esse shell, é necessário exportá-la, executando
export VAR
após a atribuiçãoVAR=VALUE
ou combinando as duas (export VAR=VALUE
).fonte
Para desarmar uma variável vinculada no bash use
unset VARIABLE
(unset ALL_PROXY
no seu caso). Este comando realmente exclui a variável. Você também pode definir o valor de uma variável como vazio porou
A diferença é que os dois últimos comandos não excluem a variável. Você pode ver a diferença usando o
-u
sinalizador comset
para forçá-lo a tratar as variáveis não definidas como um erro ao substituir:No exemplo acima, o bash reclama
var
é ilimitado (após desabilitar seu valor), que é o erro esperado (observe que isso não ocorre no segundo comando de eco, o que significa quevar
possui um valor que éempty
ounull
).fonte
unset
no script. O mesmo se aplica.