repeat()函数

1.定义repeat函数:

repeat()

  {

   while true

   do 

     $@ && return

   done

}

while循环以函数参数形式(通过$@访问)传入命令;执行成功则返回,否则退出。

2.另一种更快捷的方式,把true替换为冒号:

repeat() { while :; do $@ && return; done }

在大多数系统中,true是作为/bin中的一个二进制文件来实现的,这就意味着每执行一次while循环,shell就不得不生成一个进程。

为了避免这种情况,可以使用shell内置的命令冒号:,该命令的退出状态总是为0。尽管可读性不高,但是肯定执行速度快得多。

3.加入延时

repeat() { while :; do $@ && return; sleep 30; done }

每30秒才执行一次。

结束。

 

posted @ 2020-08-20 10:08  巴州夜雨  阅读(1971)  评论(0编辑  收藏  举报