因为工作忙经常忘记事情,但是用日历记录这些小事情感觉有点“重”,用 iMessage 刚刚好。
记录遇到的问题,也算是折腾了好久。
通过命令行发送短信
理论上是提供一种发消息手段,所幸iMessage
真的不像微信那样给你出各种难题。
1 2 3 4 5 6 7 on run {targetBuddyPhone, targetMessage} tell application "Messages" set targetService to 1 st service whose service type = iMessage set targetBuddy to buddy targetBuddyPhone of targetService send targetMessage to targetBuddy end tell end run
1 2 3 /usr/bin/osascript /Users/onns/Documents/imessage.scpt $1 $2
定时执行
这一步就会有问题,问题的原因来自于 cron 的运行环境和我们在 shell 中的不同(我猜测),多方查询之后依然没有找到解决方案,如果有人找到了请告诉我!感谢!
然后就去查了一下解决办法,大致有两种:
用苹果提出的cron
替代方案launchd
。
自己创建一个程序维护定时任务。
很显然第一个方便些,毕竟第二个每次还要自己启动。
分类
文件夹
用途
/系统/资源库/LaunchDaemons
Apple 提供的系统守护进程
/系统/资源库/LaunchAgents
Apple 提供的基于每个用户且所有用户适用的代理
/资源库/LaunchDaemons
第三方系统守护进程
/资源库/LaunchAgents
基于每个用户且所有用户适用的第三方代理
~/资源库/LaunchAgents
仅适用于登录用户的第三方代理
实现
创建脚本
1 2 cd ~/Library/LaunchAgentsvi xyz.onns.notification.plist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" > <plist version ="1.0" > <dict > <key > Label</key > <string > xyz.onns.notification</string > <key > ProgramArguments</key > <array > <string > /Users/onns/Downloads/github/notification/notification</string > </array > <key > StartInterval</key > <integer > 60</integer > </dict > </plist >
生效脚本
1 launchctl load -w xyz.onns.notification.plist
参考链接