分页: 2 / 2
发表于 : 2008-09-09 0:09
由 想入非非
建议LZ每天用2小时学习bash编程
发表于 : 2008-09-10 19:57
由 keky
其实想控制上机时间很简单吗。。每次开机就: shutdown hh:mm 计算一下时间就ok。不用非得什么shell脚本
发表于 : 2008-09-10 20:32
由 daf3707
bones7456 写了:3,若当天开机时间累计超过二小时,则第二天不能开机
谁能做到这点?最多做到一进系统就退出吧。。。
这超过两个小时的功能,需要CIH一般的功能才行
发表于 : 2008-09-10 23:09
由 zcg0696
没什么用,这种事要靠自已的努力,程序用不上两天估计你自已就给删了
发表于 : 2008-09-11 15:52
由 cnkilior
我懒了,本来写了一个,但发现不好就删掉了。
现在又有了新想法。
但要确定你的意图。但是我的只能工作在tty、pts中,属于命令行脚本。
1、你要在5分钟前有提示
2、如果你想不在2小时后关机,就需要互交(read)
---
于是程序应该是后台运行,并且要在需要互交时变成前台。这是设计的难点!
----
首先应该判断上一次是否正常结束了。
代码: 全选
NowDate=`date|awk '{print $3}'`
Yesdate=$(($NowDate-1))
FileDate=`awk '{print $1}' < ~/.ifpoweroff`
Ifdown=`awk '{print $2}' < ~/.ifpoweroff`
trap "echo You must answer the question" 2 15
panduan()
{
if [ $FileDate == $NowDate ]
then
poweroff
elif [ $FileDate == $Yesdate ]&&[ $Ifdown == 1 ]
then
poweroff
fi
}
当然为了程序不出错最好能在开头判断~/.ifpoweroff是否存在。
然后开始倒数读秒
我使用的是
代码: 全选
if sleep xxx
then
CMD
fi
的结构
到了还剩5分钟时也就是6900秒后给出一个echo提示结束工作。(当然5分钟保存作业,时间太长)
等到了2小时,这个时候要把程序提到前台(原先程序是在后台的,不然会影响工作)
这里我用了一个小窍门。
把这个程序放到~/.bashrc里面调用并后台执行。
当两小时到了,则脚本用
代码: 全选
kill -30 $PIDofSHELL
$PIDofSHELL要自己去取!
在此之前,bash在bashrc中已经执行了
这样就把这个脚本提到前台了。于是就能read了!
代码没有完成,懒得完成,这种事情还是要自觉。程序这种东西很容易钻空子。例如,你在5分钟提示后就关机了,程序就那你没有办法了。当然kill他,可以捕获信号。
---
但有了图形界面这种程序就显得毫无意义!
发表于 : 2008-09-11 15:58
由 xiooli
ls,提示信息和选择信息可以用zenity弹出窗口,不用前台后台的提来提去。
发表于 : 2008-09-11 17:04
由 cnkilior
不好意思,我没有那么高级的工具。。
rh9。
发表于 : 2008-09-11 18:03
由 xf3i
workrave
发表于 : 2008-09-11 18:58
由 chasye
看看这个, 还没测试过, 可能还要修改一下
atstart放到到/etc/init.d里, 用update-rc.d设置一下
cron放到某个目录,加入到cron就行了
依赖perl和zenity
发表于 : 2008-09-11 22:01
由 hellojinjie
谢谢各位,这几天在看 shell script ,只是现在还不足以看懂各位的脚本,
有个问题就是 poweroff 是要root 才能执行的.
我记得论坛中有个帖子是讨论过这个,不过忘了收藏了,现在找不到了
发表于 : 2008-09-12 0:44
由 hgshlg
xf3i 写了:workrave

发表于 : 2008-09-12 4:16
由 yjcong
cnkilior 写了:不好意思,我没有那么高级的工具。。
rh9。
rh9再老也应该有xmessage吧
有个问题就是 poweroff 是要root 才能执行的.
好像给普通用户加个权限就可以运行了
发表于 : 2008-09-12 17:44
由 lovexiaoo
关键是自律,不然就卖电脑吧