Como seu objetivo é agendar a execução com base na hora de início, você pode agendar cada execução de script assim:
#!bin/bash
function runattime {
execution_time=$1
delay=$(( $(date -d "$1" "+%s") - $(date "+%s") ))
if [ $delay -le 0 ]; then
echo "negative delay, probably due to incorrect date argument"
else
sleep $delay && ${@:2}
fi
}
# One shot run
runattime 11:50 echo blah &
runattime 11:51 echo bleh &
# Everyday run
while true; do
runattime 11:50 echo hola &
runattime 11:51 echo hello &
sleep 86400 # wait for next day and loop
done
Para que o script seja executado em segundo plano, mesmo quando você está desconectado, você pode usar o comando nohup do bash.