Você pode usar o comando timeout
para executar seu comando ou script em um determinado tempo limite.
Algo semelhante a isto:
timeout 10m command
O que aguarda que o comando termine em 10 minutos, caso contrário, o mata e sai com o status 124. Em seguida, você pode verificar o status de saída de timeout
e imprimir a mensagem apropriada com base nele.
Veja aqui para saber mais: página de tempo limite.
Se você não quiser matar o comando longo, faça algo assim:
(( sleep $TIMEOUT; echo "command took so long!" ) & exec $COMMAND )
Em TIMEOUT, a mensagem será impressa, mas o comando continuará a ser executado.