There's a built-in Unix command
repeat whose first argument is the number of times to repeat a command, where the command (with any arguments) is specified by the remaining arguments to
% repeat 100 echo "I will not automate this punishment."
will echo the given string 100 times and then stop.
I'd like a similar command – let's call it
forever – that works similarly except the first argument is the number of seconds to pause between repeats, and it repeats forever. For example,
% forever 5 echo "This will get echoed every 5 seconds forever and ever."
I thought I'd ask if such a thing exists before I write it. I know it's like a 2-line Perl or Python script, but maybe there's a more standard way to do this. If not, feel free to post a solution in your favorite scripting language, Rosetta Stone style.
PS: Maybe a better way to do this would be to generalize
repeat to take both the number of times to repeat (with -1 meaning infinity) and the number of seconds to sleep between repeats.
The above examples would then become:
% repeat 100 0 echo "I will not automate this punishment." % repeat -1 5 echo "This will get echoed every 5 seconds forever."