.bashrc
é originado sempre que um novo shell é iniciado - independentemente de
o shell é interativo, um sub-shell de um shell Bash existente, etc.
Eu presumo que o que você quer é verificar se o shell de login está ou não
interativo ou não:
if [[ $- == *i* ]]; then
printf "user details, ip etc" | mail -s "[LOGIN NOTICE] 'hostname' - 'whoami'" <admin>@<domain>.co.uk
fi
Uma maneira portátil (não específica do Bash) para verificar se o shell sendo iniciado é interativo ou não seria:
case "$-" in
*i*) printf "user details, ip etc" | mail -s "[LOGIN NOTICE] 'hostname' - 'whoami'" <admin>@<domain>.co.uk
esac
Consulte o manual do GNU Bash .
Esta pergunta do Unix e Linux Stack Exchange também tem algumas respostas relevantes.