sh/bash/dash/ksh/zsh等Shell脚本
-
roylez
- 帖子: 1928
- 注册时间: 2005-10-04 10:59
- 来自: 上海
#16
帖子
由 roylez » 2009-06-04 14:11
如果你用的是Arch,cron不能启动gui的原因是因为arch用的是dcron。dcron里面不能改环境变量,我已经改用fcron了,尽管更喜欢标准的vixie-cron,无奈它在aur,懒得编译了。
代码: 全选
roylez@Lancelot> which alarm ~
alarm () {
echo "msg ${*#*1}" | at now + $1 min
}
代码: 全选
roylez@Lancelot> cat =msg ~
#!/usr/bin/env ruby
#Author: Roy L Zuo (roylzuo at gmail dot com)
#Last Change: Mon Jun 01 16:23:30 2009 EST
#Description:
icon_path = File.join( ENV['HOME'], '.icons')
servants = Dir.glob(File.join(icon_path, 'servants', '*.png'))
icon = servants[rand(servants.length)]
title = '主人,提醒您一下:'
case ARGV.length
when 1
text = ARGV[0]
when 2
title, text = ARGV
when 3
icon = File.exist?(ARGV[0]) ? ARGV[0] : \
File.exist?(File.join( icon_path , ARGV[0])) ? File.join(icon_path,ARGV[0]) : icon
title, text = ARGV[1..-1]
else
title = '错误'
text = '参数无效'
end
text = %Q{<span size="14000" weight="bold">\n#{text}</span>}
system %Q{notify-send -i #{icon} '#{title}' '#{text}'}
-
bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
-
联系:
#17
帖子
由 bones7456 » 2009-06-05 8:40
crontab 可以设置环境变量,可以启动图形界面...早ee去...他知道的
-
sillybird
- 帖子: 18
- 注册时间: 2009-05-13 12:55
#18
帖子
由 sillybird » 2009-06-05 20:34
太好了! 谢谢楼主,我正在找能够每个小时自动提醒我休息10分钟的方法,楼主真是及时雨啊!
-
yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
#20
帖子
由 yjcong » 2009-06-09 20:06
谢谢主席, 我写这个脚本的时候, 用的是ubuntu, crontab启动不了GUI, at可以。
可是现在用了arch,用at调用mplayer有问题, 但crontab却能启动GUI了
To:骨头, 我把export DISPLAY=:0 写道脚本里需要调用GUI的命令的前面, 用&&加以连接
一梦三年,
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
-
yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
#21
帖子
由 yjcong » 2009-06-09 20:06
sillybird 写了:太好了! 谢谢楼主,我正在找能够每个小时自动提醒我休息10分钟的方法,楼主真是及时雨啊!
说实话, 你的这种要求用crontab会更方便的
一梦三年,
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
-
roylez
- 帖子: 1928
- 注册时间: 2005-10-04 10:59
- 来自: 上海
#22
帖子
由 roylez » 2009-06-09 20:18
yjcong 写了:谢谢主席, 我写这个脚本的时候, 用的是ubuntu, crontab启动不了GUI, at可以。
可是现在用了arch,用at调用mplayer有问题, 但crontab却能启动GUI了
To:骨头, 我把export DISPLAY=:0 写道脚本里需要调用GUI的命令的前面, 用&&加以连接
Orz...我不知道ubuntu下你的cron有啥问题,at我从来都没问题的。
arch的cron,是dcron,不能该环境变量的,也就是说,你用这个是不行的。
DISPLAY=:0.0
*/5 * * * * notify-send hello
但是,原则上用这种是可以的
代码: 全选
*/5 * * * * DISPLAY=:0.0 && notify-send hello
-
yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
#23
帖子
由 yjcong » 2009-06-10 0:59
我会把
代码: 全选
#!/bin/bash
DISPLAY=:0.0 && notify-send hello
保存成$HOME/tt.sh
然后
代码: 全选
*/5 * * * * ¥HOME/tt.sh
ubuntu下, 没问题
arch之at问题是 mplayer aa.mp3 bb.mp3,只会播放bb.mp3, aa.mp3一闪就过去了。
一梦三年,
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.