Eu corro por muitos scripts de shell com variáveis em todas as maiúsculas e sempre achei que há um sério mal-entendido nisso. Meu entendimento é que, por convenção (e talvez por necessidade há muito tempo), as variáveis de ambiente estão em maiúsculas.
Mas em ambientes modernos de script como o Bash, sempre preferi a convenção de nomes em minúsculas para variáveis temporárias e maiúsculas apenas para variáveis exportadas (ou seja, ambiente) . Por exemplo:
#!/usr/bin/env bash
year=`date +%Y`
echo "It is $year."
export JAVA_HOME="$HOME/java"
Essa sempre foi minha opinião sobre as coisas. Existem fontes autorizadas que concordam ou discordam dessa abordagem ou é apenas uma questão de estilo?