Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在没有cron的情况下递归执行脚本_Linux_Bash_Shell - Fatal编程技术网

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

Linux 在没有cron的情况下递归执行脚本,linux,bash,shell,Linux,Bash,Shell,我有一个shell脚本,它必须递归执行 Note :- 我不知道执行脚本需要多少时间,如果我安排crontab作业,则会发生冲突。请帮助我解决此问题。您可以在后台执行脚本,并在其上运行while循环 #!/bin/bash while true; do <Your commands Start> . . . <Your commands End> sleep 60 ## Comment this line if you

我有一个shell脚本,它必须递归执行

Note :-

我不知道执行脚本需要多少时间,如果我安排crontab作业,则会发生冲突。请帮助我解决此问题。

您可以在后台执行脚本,并在其上运行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

如果您从cron调度它,那么它不是递归的。如果希望脚本递归运行,那么答案是不言而喻的:它应该调用自己。只需添加:

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

编辑——现在问题已经在评论中澄清了

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

exec $0 $(expr $1 + 10)

作为脚本的最后一行。但是递归地这样做似乎有点愚蠢,因为在脚本中执行循环更有意义。

您的问题不清楚。是否要锁定脚本的执行(以禁止多个进程运行它)?您希望脚本多久运行一次?请编辑您的问题以改进itI。我有一个脚本。我希望使用不同的参数递归地执行该脚本。所以第一次脚本将以参数值10执行,一旦脚本被执行,它将以参数值20重新启动,然后以参数值30重新启动,依此类推。请定义脚本的递归执行的含义。显示一些脚本代码。你的问题还不清楚,我有剧本。我希望使用不同的参数递归地执行该脚本。因此,第一次脚本将以参数值10执行,一旦脚本执行,它将以参数值20重新启动,然后以参数值30重新启动,依此类推。请编辑您自己的问题,而不是对其进行评论。请出示你的剧本。虽然问题可能不清楚,但你能解释一下这与被问到的问题有什么关系吗?这如何提供任何类型的保护,防止此脚本与通过
cron
启动的同一脚本之间发生冲突?是的,问题不清楚,我提供了这一点,因为他似乎想要避免cron,这个无限循环可能会帮到他。
exec $0 $(expr $1 + 10)