Estou assumindo um bash
shell, ou similar, já que não há shell listado nas tags.
Para verificar se você está em um shell interativo:
[[ $- == *i* ]] && echo 'Interactive' || echo 'Not interactive'
Para verificar se você está em um shell de login:
shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'
Por "lote", suponho que você quer dizer "não interativo", portanto, a verificação de um shell interativo deve ser suficiente.