Peça a data em segundos: date +%s
e calcule o lembrete do devision com 60 (modulo: %
). Se você calcular 60 menos o módulo, você recebe os segundos restantes para o próximo minuto completo. Você pode alterar isso para aguardar até a próxima hora completa (alterar de 60 a 3600).
sleep $((60 - $(date +%s) % 60)) &&
<yourscript>
Para apenas dormir até o próximo minuto inteiro, você pode até diminuí-lo (sem o módulo):
sleep $((60 - $(date +%S) )) &&
<yourscript>
Esteja ciente também desta pergunta e resposta: dormir até a próxima ocorrência de tempo específico .