Mesmo que você já tenha removido uma variável de ambiente (como ANTHROPIC_BASE_URL) do ~/.zshrc, ao verificar no terminal, ela surpreendentemente ainda está lá!
Mesmo reexecutar source ~/.zshrc é completamente inútil?
Como verificar se uma variável de ambiente existe e por qual arquivo de configuração foi escrita?
Antes de iniciar a limpeza, primeiro você precisa confirmar se a variável ainda permanece na memória atual e qual arquivo de configuração a está carregando automaticamente.
1. Verificar variáveis na memória
Verifique se a variável de ambiente ainda permanece na memória atual do Terminal
env | grep -i anthropic
2. Pesquisar a origem dos arquivos de configuração
Pesquise abrangentemente nos arquivos de configuração do Zsh, Bash e a nível de sistema para descobrir qual arquivo escreveu a variável
grep -rn "ANTHROPIC_BASE_URL" ~/.zshrc ~/.zprofile ~/.zshenv ~/.zlogin ~/.bashrc ~/.bash_profile ~/.profile /etc/zshenv /etc/zprofile /etc/profile /etc/environment 2>/dev/null
Por que variáveis de ambiente antigas permanecem após modificar o .zshrc?
Na verdade, ao abrir o terminal, as variáveis de ambiente já foram carregadas na “memória” daquela conexão.
Mesmo que você modifique o arquivo ou execute novamente source ~/.zshrc, isso apenas “recarrega” o conteúdo do arquivo de configuração e não remove automaticamente as variáveis antigas existentes na memória.
O comando
sourceapenas sobrescreve ou adiciona variáveis, e não “deleta” variáveis para você
Neste ponto, as soluções mais simples são as seguintes:
| Método de Limpeza | Comando / Ação | Descrição |
|---|---|---|
| Abrir nova janela | Abrir uma aba de terminal totalmente nova | O novo Shell Process lerá novamente o ~/.zshrc mais recente |
| Limpeza manual | unset ANTHROPIC_BASE_URL |
Remove diretamente a variável de ambiente especificada da memória atual |
| Reiniciar shell | exec zsh -l |
Recarrega o estado da memória do Shell atual |
Reabrir janelas do terminal continua inútil? Descubra os 3 principais culpados
Por que às vezes, mesmo após abrir uma janela de terminal totalmente nova, a variável de ambiente antiga continua lá?
Neste caso, o problema não está mais no ~/.zshrc, mas é herdado do “Processo Pai (Parent Process)”!
Quando você inicia um terminal a partir de um aplicativo de software, o processo filho copia diretamente a captura das variáveis de ambiente do processo pai naquele momento.
Se você encontrar uma variável de ambiente tão persistente, geralmente é por causa de um dos três motivos comuns a seguir:
| Tipo | Causa | Solução |
|---|---|---|
| Terminal integrado da IDE | VS Code, Cursor ou Antigravity registraram a captura das variáveis de ambiente na inicialização |
Pressione Cmd + Q para encerrar completamente a IDE e abra-a novamente |
| Aplicativo de Terminal não fechado | Terminal ou iTerm2 no Mac apenas fecharam janelas (Cmd + W), o programa principal continua rodando em segundo plano |
Pressione Cmd + Q para encerrar completamente o aplicativo Terminal |
| tmux | O Server em segundo plano do tmux roda continuamente, novas abas herdam as configurações da inicialização |
Execute tmux kill-server para encerrar o serviço em segundo plano |
Reiniciar o software continua ineficaz? Verifique ferramentas de terceiros e configurações do sistema
Se todos os três truques acima falharem e a variável de ambiente continuar aparecendo no Terminal, configurações do sistema de nível superior ou ferramentas de terceiros podem estar agindo em segundo plano.
Permissões de sistema mais altas ou scripts invólucro (wrapper) restaurarão as variáveis de ambiente automaticamente a cada inicialização
Neste caso, você pode usar os dois principais comandos de detecção a seguir:
| Alvo de Detecção | Comando | Deskrição |
|---|---|---|
| Variáveis globais do sistema | launchctl getenv ANTHROPIC_BASE_URL |
Verifique se ferramentas de proxy de terceiros usam launchctl setenv para definir variáveis globais |
| Scripts invólucro de comandos | type claude |
Verifique se o comando atual é o executável original ou se está envolvido em um script wrapper com variáveis padrão |
Passos padrão de depuração para remover variáveis de ambiente completamente
Da próxima vez que modificar ou remover variáveis de ambiente no ~/.zshrc, lembre-se de confirmar primeiro: O terminal atual está herdando as configurações do antigo Parent Process?
Siga esta sequência de depuração para encontrar facilmente a causa raiz e resolver o problema:
- Execute primeiro
unset NOME_DA_VARIAVELou abra uma janela de terminal totalmente nova. - Se usar uma
IDEcomoVS CodeouCursor, pressioneCmd + Qpara reiniciar completamente aIDE. - Se usar o
tmux, executetmux kill-serverpara redefinir o serviço em segundo plano. - Verifique os comandos
launchctl getenvetypepara inspecionar os níveis de sistema e scripts invólucro.