📅  最后修改于: 2023-12-03 15:09:47.999000             🧑  作者: Mango
在编写 Bash 脚本时,可能需要在一定的时间后再执行某个命令,这时就需要延迟执行命令。延迟执行可以使用多种方式实现,这里介绍常用的几种方法。
sleep
命令可以使当前进程停顿指定的时间,我们可以利用这个特性来实现延迟执行的效果。
# 等待 5 秒后执行命令
sleep 5 && command
这个命令会在等待 5 秒后执行 command
。注意,使用 &&
运算符可以保证只有在等待时间结束后才执行命令。
atd
是一个服务,可以在指定的时间运行一次命令,这个服务默认是开启的,使用前请保证已经安装。
# 在当前时间 + 1 分钟执行命令
echo "command" | at now + 1 minute
由于 at
命令是异步执行的,运行成功后会输出一个消息,例如:
warning: commands will be executed using /bin/sh
job 6 at Fri Sep 17 01:04:00 2021
这个消息表示命令已经在指定的时间加入了计划任务,不会立即执行。
cron
是一个守护进程,可以在指定的时间定期运行一次命令。与 atd
不同,cron
是周期性执行的,可以每隔一段时间执行一次。
# 每天 1 点执行命令
0 1 * * * command
这个命令的含义是,在每天的 1 点执行 command
。详细的 cron 表达式语法可以参考 Crontab.guru。
以上是常用的三种延迟执行命令的方法,它们在不同的场合下都可以派上用场。选择合适的方法可以提高脚本的可读性和可维护性。
希望这篇介绍对你有所帮助!