📜  延迟 bash - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:09:47.999000             🧑  作者: Mango

延迟执行 bash 命令

在编写 Bash 脚本时,可能需要在一定的时间后再执行某个命令,这时就需要延迟执行命令。延迟执行可以使用多种方式实现,这里介绍常用的几种方法。

使用 sleep 命令

sleep 命令可以使当前进程停顿指定的时间,我们可以利用这个特性来实现延迟执行的效果。

# 等待 5 秒后执行命令
sleep 5 && command

这个命令会在等待 5 秒后执行 command。注意,使用 && 运算符可以保证只有在等待时间结束后才执行命令。

使用 atd 服务

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 服务

cron 是一个守护进程,可以在指定的时间定期运行一次命令。与 atd 不同,cron 是周期性执行的,可以每隔一段时间执行一次。

# 每天 1 点执行命令
0 1 * * * command

这个命令的含义是,在每天的 1 点执行 command。详细的 cron 表达式语法可以参考 Crontab.guru

总结

以上是常用的三种延迟执行命令的方法,它们在不同的场合下都可以派上用场。选择合适的方法可以提高脚本的可读性和可维护性。

希望这篇介绍对你有所帮助!