首页 > > > Shell下重复多次执行命令
在Linux shell下通常需要重复多次执行某条命令。
可能是最好用的命令了。
watch -n x <cmd>x是间隔,以秒为单位。
例如:
$ watch -n 1 date你将得到一个全屏(占据整个shell窗口)的输出:
Every 1.0s: date Fri Jul 21 14:17:31 2017
Fri Jul 21 14:17:31 CST 2017第一行是watch的参数,左边是间隔时间,右边是上一次执行时间。
下面是命令输出,因为我们这里是date,所以输出的也是时间。
watch可以不指定参数,默认2S执行一次命令。
$ watch dateshell老司机可能更喜欢这个方法。
$ while true; do date; sleep 1; done
Fri Jul 21 14:20:24 CST 2017
Fri Jul 21 14:20:25 CST 2017
Fri Jul 21 14:20:26 CST 2017
Fri Jul 21 14:20:27 CST 2017有一个滚动的输出,有时候看起来会更酷一些。
$ seq 10 | xargs -i date
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017
Fri Jul 21 14:20:55 CST 2017seq 生成一个1-10的数组。xargs兴高彩烈的拿着这个数组,准备将数组元素传给date 命令做参数。xargs -i会查找命令字符串中的{},并用数组元素替换{}。但是xargs一看,WTF!命令里面居然没有占位符。那好吧,就执行10遍命令,让参数随风去吧。
$ seq 10 | xargs -i date {}
date: invalid date ‘1’
date: invalid date ‘2’
date: invalid date ‘3’
date: invalid date ‘4’
date: invalid date ‘5’
date: invalid date ‘6’
date: invalid date ‘7’
date: invalid date ‘8’
date: invalid date ‘9’
date: invalid date ‘10’这种方法不能加延时,如果有谁知道,这种方法如何加延时,请告诉我。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31509949/viewspace-3141142/ ,如需转载,请注明出处,否则将追究法律责任。