Já existe uma pergunta "O que deve / não deve entrar em .zshenv, .zshrc, .zlogin, .zprofile, .zlogout? ".
Estou me perguntando por que alguém coloca qualquer coisa em /etc/zshenv
ou ~/.zshenv
. Para aqueles que não estão familiarizados, esses arquivos geralmente são originados em cada invocação de zsh
, mesmo quando está executando um arquivo de script. O fornecimento do arquivo global não pode ser substituído; O fornecimento do arquivo local pode ser evitado com a execução de zsh
as zsh -f
.
Parece uma má ideia ter arquivos de configuração que alteram o comportamento de todos os meus scripts Zsh. Nem mesmo a existência desse recurso torna os scripts Zsh altamente não portáteis? Lembro-me de ter tido problemas nos quais os administradores de sistema colocaram coisas em /etc/zshenv
, que quebram meus scripts ou os atrasam muito.
E suponha que eu use apenas ~/.zshenv
para exportar variáveis de ambiente - por que eu posso substituir temporariamente uma dessas variáveis ao executar um script Bash ou um script Perl, mas não um script Zsh? E por que não simplesmente configurar essas variáveis em ~/.zprofile
, que é originado com cada shell de login? A natureza das variáveis de ambiente é que elas são herdadas, portanto, isso parece ser suficiente. Se eu precisar dessas variáveis em um cron job, posso executá-lo com zsh -cl
...
Tags zsh shell-script portability