Você pode verificar a variável $DISPLAY
para ver se você está em uma exibição x - se ela não estiver vazia, você terá uma exibição:
if [ -n "$DISPLAY" ]; then
# run GUI program
else
# run term program
fi
Um teste rápido mostrou que isso funciona mesmo para o X-tunneling.