Ubuntu 16.04中Bash 4.3使用at命令延迟2小时执行任务报错求助
解决Ubuntu 16.04中
at命令的语法错误问题 嘿,我来帮你搞定这个at命令的小麻烦~
首先你遇到的语法错误,是因为at命令根本不支持+[#][time-unit]这种写法,它的时间参数有自己的规则,所以才会提示“Garbled time”(时间格式混乱)。
其实完全不用特意把当前时间存入变量,at本身就支持相对当前时间的写法,直接用下面的命令就能实现2小时后执行任务:
echo "你的具体命令" | at now + 2 hours
举个实际例子,比如要2小时后输出“任务完成”到日志文件,就可以写:
echo "echo '任务完成' >> ~/task_log.txt" | at now + 2 hours
如果你好奇at还支持哪些时间格式,给你列几个常用的:
- 绝对时间:
at 14:30(今天14:30执行)、at tomorrow 10:00(明天10点执行) - 相对时间:
at now + 30 minutes(30分钟后)、at now + 1 day(1天后)
当然,如果你非要用变量来实现(其实没必要,但满足你的好奇心),可以这样做:
先获取当前时间的格式化字符串(比如HH:MM),然后传给at:
# 获取当前时间,格式为小时:分钟 current_time=$(date +"%H:%M") # 用当前时间加上2小时来指定执行时间 echo "你的具体命令" | at "$current_time + 2 hours"
但还是推荐直接用now + 2 hours的写法,更简洁不容易出错~
内容的提问来源于stack exchange,提问作者Arcticooling
相关产品推荐
相关产品推荐

