昨天在用ff从tgbus上下载几个psp游戏,然后在想定个时在什么时候关机
sudo shutdown -h +320
但是一想,如果这破电信的网速不好,那岂不是白搞了(不知115是否能断点续传),然后就想到搞个下载完关机的sh脚本。
这里sh脚本我就不说了,思路是:
while循环
sleep两秒
如果测试没有以part结尾的文件名的话
关机
想到这些我就写下了这样的东东
#!/bin/bash while $(sleep 2); do if [ ! -f *.part ]; then # 测试当前目录下有无firefox未下载完的文件 sudo shutdown -h now fi done
后来觉得有一问题,就是要管理员的密码。进而就想到了使用expect, 然后就把shutdown那句放入了命名为power-off.expect文件中。
#!/usr/bin/expect set timeout 60 spawn sudo shutdown -h +1 # 推迟1分钟,以防文件还未写完。 expect "leon:" # 这句是猜测执行上段命令回显的最后几个字符,大概就是"password for user:"或 "Password:"或"密码:" send "yourpassword\r" interact
注意:这里的power-off.expect里面你的密码就是明文了,一定要注意权限,我是直接700了(即同组与其它组无读,无写,无执行权限)。
然后,将power-off.expect放入要调用的执行脚本,即
#!/bin/bash while $(sleep 2); do if [ ! -f *.part ]; then # 测试当前目录下有无firefox未下载完的文件 ./power-off.expect fi done