在没有cron的情况下递归执行脚本

Execute script recursively without cron

我有 shell 必须递归执行的脚本。

Note :-

我不知道执行脚本需要多少时间,如果我安排 crontab 作业,那么冲突将 occur.please 帮助我解决这个问题。

您可以在后台执行带有 while 循环的脚本 运行。

#!/bin/bash

while true; do 
    <Your commands Start>
    .
    .
    .
    <Your commands End>
    sleep 60 ## Comment this line if you dont want to wait for 60 seconds for                   
             ## your next execution.
done

运行 这个脚本在后台。

$ ./script &

如果您从 cron 安排它,则它不是递归的。如果你想让脚本递归地 运行 ,那么答案是不言而喻的:它应该调用自己。只需添加:

exec [=10=] "$@"

在脚本的末尾,并确保在 运行 期间不要更改位置参数。 (如果更改它们,则需要保存它们的原始值,以便可以使用它们调用脚本。)

编辑——现在问题已在评论中得到澄清。

如果您希望收到一个数字参数并希望在每个 运行 上将其递增 10,请执行以下操作:

exec [=11=] $(expr  + 10)

作为脚本的最后一行。但是递归地执行此操作似乎有些愚蠢,因为在脚本中简单地执行一个循环更有意义。