I do not know of a tool that literally takes hh:mm:ss as its argument, but there is 'sleep', which takes seconds or minutes or hours. You could write a simple wrapper script to convert your input from hh:mm:ss to just seconds:
Code:
#!/bin/bash
H=$(echo $1 | cut -f1 -d":" )
M=$(echo $1 | cut -f2 -d":" )
S=$(echo $1 | cut -f3 -d":" )
HM=$(echo "$H * 60" | bc)
TM=$(echo "$HM + $M" | bc)
TS=$(echo "$TM * 60" | bc)
TOTAL=$(echo "$TS + $S" | bc)
echo $TOTAL
sleep $TOTAL && $2
That's pretty basic but it does the trick, ie, if I enter
./myscript.sh 00:01:14 'echo "hello world"'
then the shell waits for 74 seconds and then runs 'echo "hello world"' as expected.
If I run
(./myscript.sh 00:01:14 'echo "hello world"')
then it all happens in a subshell so I don't have to watch it sit there and wait. Not sure what your use case is.