代码: 全选
#!/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