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

如何在Curl与Grep组合中取反结果并实现Mac定时通知?

解决方案

1. 修改匹配逻辑并封装为Bash脚本

原脚本逻辑是匹配到"Thanks for checking"时触发通知,我们需要取反逻辑——当页面不包含该文本(即有促销)时发送通知。

创建名为wayfair_monitor.sh的脚本,内容如下:

#!/bin/bash

# 配置参数
TARGET_PHONE="5555551234"
WAYFAIR_URL="https://wayfair.com"
SEND_MESSAGE_SCRIPT="/Users/你的用户名/SendMessage.scpt"  # 替换为实际脚本的绝对路径

# 抓取页面并检查是否不含目标文本
if ! /usr/bin/curl -s "$WAYFAIR_URL" | /usr/bin/grep -q "Thanks for checking"; then
    # 触发iMessage通知
    /usr/bin/osascript "$SEND_MESSAGE_SCRIPT" "$TARGET_PHONE" "$WAYFAIR_URL"
fi

说明:

  • ! 用于取反后续命令的执行结果,即grep未匹配到目标文本时进入通知分支
  • 使用命令的绝对路径(/usr/bin/curl、/usr/bin/grep、/usr/bin/osascript),避免crontab环境变量缺失导致命令找不到
  • 替换SEND_MESSAGE_SCRIPT为你实际存放SendMessage.scpt的绝对路径

给脚本添加执行权限:

chmod +x wayfair_monitor.sh

2. 配置crontab实现每分钟执行

打开crontab编辑界面:

crontab -e

添加以下配置(替换为wayfair_monitor.sh的绝对路径):

* * * * * /Users/你的用户名/wayfair_monitor.sh >> /Users/你的用户名/wayfair_monitor.log 2>&1

说明:

  • * * * * * 表示每分钟执行一次
  • >> ...log 2>&1 用于记录脚本的输出和错误信息,方便排查问题

3. 关键注意事项

  • Messages权限:在「系统设置」→「隐私与安全性」→「自动化」中,允许终端(或osascript)控制Messages应用,避免通知发送失败
  • 反爬风险:每分钟请求一次可能触发网站反爬机制,可根据实际情况调整频率(比如每5分钟执行:*/5 * * * *)
  • 脚本测试:先手动执行脚本验证逻辑是否正常:
    ./wayfair_monitor.sh
    

内容的提问来源于stack exchange,提问作者CaptainNewb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:44:54