You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:09:57