Option #1:
You can use watch
command , watch is used to run any designated command at regular intervals .
Open Terminal and type :
watch -n x <your command>
change x to be the time you want .
For more help using the watch
command and its options, run man watch
or visit this Link
For example : the following will list, every 60s, on the same Terminal, the contents of the Desktop directory so that you can know if any changes took place:
watch -n 60 ls -l ~/Desktop
Option #2:
You can also use this command in terminal, apart from option #1 :
while true; do <your_command>; sleep <interval_in_seconds>; done
Example
while true; do ls; sleep 2; done
This command will print output of ls
at an interval of 2 sec.
Use Ctrl+C to stop the process.
There is few drawbacks of watch
- It can not use any aliased commands.
- If the output of any command is quite long, scrolling does not work properly.
- There is some trouble to set maximum time interval beyond certain value.
watch
will interpret ANSI color sequences passing escape characters using-c
or--color
option. For example output ofpygmentize
will work but it will fail forls --color=auto
.
In the above circumstances this may appear as a better option.
Option #3:
You can create your own repeat
command doing the following steps;
First, open your .bash_aliases
file:
$ xdg-open ~/.bash-aliases
Second, paste these lines at the bottom of the file and save:
repeat() {
n=$1
shift
while [ $(( n -= 1 )) -ge 0 ]
do
"$@"
done
}
Third, either close and open again your terminal, or type:
$ source ~/.bash_aliases
Et voilà ! You can now use it like this:
$ repeat 5 echo Hello World !!!
or
$ repeat 5 ./myscript.sh