要限制BASH脚本的运行时间,您可以使用timeout
命令。timeout
命令允许您为脚本设置最大运行时间,超过该时间后,脚本将被终止。以下是如何使用timeout
命令的示例:
coreutils
包,因为timeout
命令是在该包中提供的。在大多数Linux发行版中,您可以使用以下命令安装coreutils
:
sudo apt-get install coreutils
timeout
命令运行您的BASH脚本。例如,要将脚本my_script.sh
的最大运行时间设置为60秒,请执行以下命令:
timeout 60s ./my_script.sh
如果脚本在60秒内完成,timeout
命令将返回0。如果脚本未在60秒内完成,timeout
命令将返回124。
timeout 60s ./my_script.sh || (echo "Script timed out" | mail -s "Script timed out" user@example.com)
在这个示例中,如果脚本在60秒内完成,timeout
命令将返回0,邮件通知将不会发送。如果脚本未在60秒内完成,timeout
命令将返回124,邮件通知将发送给指定的收件人。
请注意,timeout
命令在Linux和macOS上可用,但在Windows上不可用。在Windows上,您可以使用start /wait /t
命令来限制脚本的运行时间。例如,要将脚本my_script.bat
的最大运行时间设置为60秒,请执行以下命令:
start /wait /t 60 my_script.bat
这将启动my_script.bat
并等待它完成,同时限制其运行时间为60秒。如果脚本在60秒内完成,start
命令将返回0。如果脚本未在60秒内完成,start
命令将返回1。
领取专属 10元无门槛券
手把手带您无忧上云