通过man at,发现要想at的job真正运行,需要后台一直跑atrun daemon

 Note that at is implemented through the launchd(8) daemon periodically invoking atrun(8), which is disabled by default.  See atrun(8) for information about enabling atrun.

启动atrun

通过man atrun,查看atrun的mannul,发现了启动atrun的方法(root权限):

launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

启动atrun之后,我的at任务都能跑了

一个使用at的例子(时间如果过了,那么默认是第二天)

at 20:06 ## 然后会进入interactive(交互模式),在里头写命令,回车分割;输入好了Ctrl+D退出(一定要先回车)
## 或者,把zb写成一个shell,然后
at -f zb.sh at 20:06 # at -f zb.sh

# 我工作,需要写周报的
at 20:06

## 下面是进入交互的时候
export LPP=/Users/apple && export PATH=$LPP/.nvm/versions/node/v16.13.2/bin:$LPP/.nvm-universal/bin:$PATH && export NODE_PATH=$LPP/.nvm-universal/lib/node_modules && node $LPP/workspace/weitai/tool/weekly/index.js >> $LPP/log-weekly-crontab.txt 2>&1