Se você estiver em uma janela de terminal da GUI, não está em um shell de login. E se você estiver em tty, você tem certeza em um shell de login. Para testá-los, você pode usar:
shopt -q login_shell && echo 'Login shell' || echo 'Not login shell'
ou mais simples:
shopt | grep login
Exemplo para usar em uma instrução if
:
login_shell=$(shopt | grep login | cut -f2)
if [ "$login_shell" = "on" ]; then
echo 'Login shell'
# do stuff in login shell
else
echo 'Not login shell'
# do stuff in non login shell
fi