2016-08-22 68 views
1

我正在研究一次运行约30分钟的bash脚本。就这一部分而言,我已经稳定运行了。我一直在寻找一种方法,使其在运行时每隔3分钟以内的某个指令触发某些命令。我没有任何运气,所以我转向那些可能比我更了解bash的人。如何使bash脚本定期执行命令

有什么建议吗?

这是我想要做的。

START=$(date +%s); 

while read LINE <&3; do 
END=$(date +%s); 
if [[ $(($END-$START)) > 180 || $(($END-$START)) == 180 ]] 
then 
$START=$(date +%s); 
run command 
fi 
done 
+0

请编辑您的问题以显示[迄今尝试的内容](http://whathaveyoutried.com)。您应该包含您遇到问题的代码[mcve],然后我们可以尝试帮助解决特定问题。你还应该阅读[问]。 –

回答

1

您可以在后台运行一个循环:

{ while /bin/true; do some_command; sleep 180; done; } & 
loop_pid=$! 

然后,主脚本退出之前,杀死后台循环:

kill $loop_pid 
2

添加cron作业使其每3分钟运行一次。

*/3 * * * * /path/to/script 
0

您也可以从同一脚本中调用相同的脚本。

$ cat script.sh 

#!/bin/bash 

# commands 
# commands 

sleep 1800 
sh $0