~/.profile
é lido apenas por shells de login. ~/.kshrc
é executado apenas para shells interativos.
O env
do Solaris suporta a sintaxe (agora obsoleta, mas retida no Solaris, que leva a sério a compatibilidade com versões anteriores) env - /path/to/command
para executar /path/to/command
em um ambiente vazio. Portanto, env - /usr/bin/ksh -c /path/to/script
executará o script em um ambiente vazio e não fornecerá nenhum script de perfil. O Ksh pode definir algumas variáveis de ambiente por sua própria iniciativa: Eu não sei sobre o ksh88, mas o ksh93 define _
e PWD
e pdksh define _
e PATH
.
Você pode seletivamente ou indiscriminadamente limpar as variáveis de ambiente de dentro do ksh.
unset x
for x in $(typeset +x); do
unset $x
done