自己写的一个定时提示脚本

sh/bash/dash/ksh/zsh等Shell脚本
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

自己写的一个定时提示脚本

#1

帖子 yjcong » 2008-08-21 0:38

不喜欢体积大的软件。 crontab在我这就是不能启动GUI, at太麻烦, 一个wmtimer只能单线使用, 所以为了自己方便, 写了这个提醒用的script(用at)

代码: 全选

#!/bin/bash
#################################
#说明:
#-------
#<1>有2种时间输入模式
#(i)数字加分钟, 例如: 2min .中间无空格, 且只能是"min"
#(ii)精确时间,  12:56 .24小时制, 冒号为英文字符.
#----------------
#<2>有2种提示方式
#(i)播放音乐. 需要设置下面的"musik"的路径,可也可播放视频. 如果没有mplayer,
# 可把下面的player改成别的播放器
#(ii)显示提示内容. 需要xmessage, 和 wmctrl. 如果
#    不需要所提示的东西在桌面的最上层,则不需要wmctrl.
#    wmctrl -c 会把窗口放到中间,其他的位置应该有参数的.
#-----------------
#<3>例子.(假设这个script被叫做att,放在"/usr/bin/"下,即, /usr/bin/att .先chmod 755 att,然后 sudo mv att /usr/bin/)
#(i)att 9min                          :::九分钟后会播放音乐
#(ii)att  12:16                       :::在12点16分播放音乐
#(iii)att 3min kill ee              :::在3分钟后蹦出xmessage的窗口,并显示 "kill ee"
#(iv)att 9:52  我们一起来打ee  ::: 在早上9点52分,出现xmessage窗口,显示"......"
#-----------------
#<4>注意.
#(i)如果播放音乐,确定声音已经开到足够大
#(ii)如果声音和提示都要, 则运行2次即可
#(iii)如果提示的内容中有特殊符号(譬如ee的电话),我不清楚会有什么影响
#(iv)gato是个图形的at
##################################
#随便推荐2个看图软件(仅仅是看图)
#<1>qiv, 这个软件的好处是slideshow, 不用全屏,且可以运行很多个.
# qiv -e -w 300 -s -d 1.2 * &
#"-e"为不在中心,"-w 300"把宽度固定在300, "-s"为slideshow, "-d 1.2"一张图片显示1.2秒
#----------
#<2>xzgv, 在xzgv的窗口上点右键, 有快捷键的提示.我常用的就是"z"和空格
#   xzgv * 即可
##################################

musik="/路径/......mp3"
player=mplayer


if [ "$#" = 1 ];then
     at_job="export DISPLAY=:0. && $player $musik"
     check=`echo $1|grep min`
     if [ ! $check ];then
          check_t=`echo $1|grep \:`
          if [ ! $check_t ];then
               echo "time format is not correct"
          else
               echo "$at_job"| at  $1
          fi
     else
          echo "$at_job"|at now + $1
     fi
else
     content=`echo $*|awk '{gsub($1, "");print}'`
     at_job="export DISPLAY=:0. && xmessage -c ""$content"
     at_wx="sleep 1 && export DISPLAY=:0. && wmctrl -r xmessage -b toggle,above"
     check=`echo $1|grep min`  
     if [ ! $check ];then
          check_t=`echo $1|grep \:`
          if [ ! $check_t ];then
              echo "time format is not correct"
          else
              tf=`echo $1|awk -F: '{print $1}'`
              te=`echo $1|awk -F: '{print $2}'`
              te=$((te+1))
              echo "$at_job"|at  $1
              echo "$at_wx="|at  $tf":"$te
           fi
     else
          tim=`echo $1|sed 's/min//g'`
          tim=$((tim+1))
          echo "$at_job"|at now + $1
           echo "$at_wx"|at  now + $tim"min"
     fi
fi    
上次由 yjcong 在 2008-09-07 16:48,总共编辑 8 次。
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
HuntXu
帖子: 5776
注册时间: 2007-09-29 3:09

#2

帖子 HuntXu » 2008-08-21 18:16

咋没人理你呢... :D
HUNT Unfortunately No Talent...
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

#3

帖子 eexpress » 2008-08-21 19:38

94
● 鸣学
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#4

帖子 yjcong » 2008-08-21 19:52

:em19 我已经习惯了, 自娱自乐吧
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
Stupid kid
帖子: 416
注册时间: 2006-10-18 12:57

#5

帖子 Stupid kid » 2008-08-21 21:27

yjcong 写了::em19 我已经习惯了, 自娱自乐吧
bash懂得不多,呵呵,先收藏着待研究!

小问题,DISPLAY变量指的是什么,有哪些可用的值?
http://twitter.com/nothining
Mail: bjdfzster@gmail.com
南京的开源活动几乎是0,希望能有人组织下(也可以拉我入伙^_^)
最近在从零开始学习Linux程序设计,加油……
yuhongchun
帖子: 587
注册时间: 2008-05-25 21:11

#6

帖子 yuhongchun » 2008-08-26 18:44

楼主辛苦了,我支持一下。
lemonade
帖子: 53
注册时间: 2007-09-01 7:15

#7

帖子 lemonade » 2008-08-27 14:40

给楼主提个建议不要再把music写错了。
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#8

帖子 yjcong » 2008-08-27 14:49

lemonade 写了:给楼主提个建议不要再把music写错了。
没,那是德语的写法, 比如fone, physik。。。。。
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
HuaChong
帖子: 493
注册时间: 2006-09-12 17:10

#9

帖子 HuaChong » 2008-08-28 22:25

每天午休都是在敲at做闹铃,现在可以试试你的这个了。看是否简便!
头像
后之后觉
帖子: 252
注册时间: 2008-05-15 13:16

#10

帖子 后之后觉 » 2008-08-28 22:57

bash新手,不是完全看的明白,收藏了慢慢研究
头像
jialeadmin
帖子: 724
注册时间: 2008-06-17 23:17
来自: 灾区
联系:

#11

帖子 jialeadmin » 2008-08-28 23:06

我们一起来打ee ::: 在早上9点52分,出现xmessage窗口,显示"......"
如果提示的内容中有特殊符号(譬如ee的电话),我不清楚会有什么影响
:shock: 仇深似海??
◆WINDOWS系统已彻底删除
◆正在安装UBUNTU 9.04
◆系统正在复制文件,请稍等...
┌────────────┐
│ ■■■■■■■□□□ 70% │
└────────────┘
头像
yjcong
帖子: 2470
注册时间: 2006-02-28 3:11

#12

帖子 yjcong » 2008-08-30 8:15

Stupid kid 写了:
yjcong 写了::em19 我已经习惯了, 自娱自乐吧
bash懂得不多,呵呵,先收藏着待研究!

小问题,DISPLAY变量指的是什么,有哪些可用的值?
我不是很清楚,坛子里隐约曾讨论过, 你试着找找看。
平时, 好像只有0.0, export |grep -i display 显示的就是你能用的。 有时有远程的还有别的。。。。。
一梦三年,
松风依旧,
萝月何曾老.


灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
头像
coolxia123
帖子: 20
注册时间: 2008-03-09 22:32
联系:

#13

帖子 coolxia123 » 2008-08-31 16:49

我是bash新手,学习了 上次用at命令,感觉和windows下有很大差别,这次感觉楼主这个方便多了
头像
highwind
帖子: 1362
注册时间: 2008-09-05 23:31
系统: LinuxMint17

Re: 自己写的一个定时提示脚本

#14

帖子 highwind » 2009-06-04 13:39

确实有必要好好去学学at 和 crontab 了
blue sea
帖子: 198
注册时间: 2007-11-10 8:57

Re: 自己写的一个定时提示脚本

#15

帖子 blue sea » 2009-06-04 14:10

ee你也敢kill? :em02
回复