使用 Shell 脚本在 MacOS 上做一个简易的休息提醒 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lyqiang
V2EX    分享创造

使用 Shell 脚本在 MacOS 上做一个简易的休息提醒

  •  
  •   lyqiang 322 天前 1655 次点击
    这是一个创建于 322 天前的主题,其中的信息可能已经有所发展或是发生改变。
    好多提醒软件设置时间都是付费,就搞了一个简单脚本,每隔 30 分钟提醒休息一下,需要的可以试试。
    也可以改造成其它摸鱼软件,比如后台刷价格,满足条件之后提醒你该卖出了。

    第一步:写脚本,保存为 rest_reminder.sh

    #!/bin/bash

    # 循环执行提醒任务
    while true; do
    # 使用 osascript 命令弹出消息框
    osascript -e 'display alert "休息一下啦!" message "已经工作 30 分钟啦,建议休息 2 分钟哦。" buttons {"好的"} default button 1'

    # 休眠 30 分钟( 30 * 60 秒)
    sleep 1800

    done


    第二步:设置执行权限
    chmod +x ./rest_reminder.sh

    第三步:后台运行
    nohup ./rest_reminder.sh &
    9 条回复    2024-11-23 14:03:01 +08:00
    xibobo
        1
    xibobo  
       322 天前
    666
    xibobo
        2
    xibobo  
       322 天前
    还可以深挖一下,搞个 conf 文件,定义各种提醒 喝水 上厕所,执行间隔等等
    然后 github 发布一下
    betabao
        3
    betabao  
       322 天前
    看看这个 app: https://getjustfocus.com/
    aduo
        4
    aduo  
       322 天前
    https://github.com/ivoronin/TomatoBar 开源番茄时钟,你值得拥有
    kukakalxh
        5
    kukakalxh  
       322 天前   1
    不到 30 分钟我的手就会自动摸手机提醒我该摸鱼了
    lyqiang
        6
    lyqiang  
    OP
       322 天前
    @kukakalxh #5 还得是你
    tr>
    KentY
        7
    KentY  
       322 天前
    作为玩具, while true sleep is fine.
    如果复杂点, robust 点, 请考虑 cron.
    必要的话引入 flock. 比如你定时 30min 运行一个什么 task, 然后你需要点交互(点击按钮比如)来结束这个 task 进程, 但是, 你跑出去开会去了, 跟同事吃午饭去了, 或者蹲坑去玩手机摸鱼了... 无法结束这个进程的时候....
    liulicaixiao
        8
    liulicaixiao  
       321 天前
    @kukakalxh 我不一样,放下手机那一刻我就开始想摸手机
    lyqiang
        9
    lyqiang  
    OP
       321 天前
    @KentY 手动点赞
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1020 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:35 PVG 02:35 LAX 11:35 JFK 14:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86