使用CRON自动播放Pimsleur教程

2014年09月29日

几个月前我的华硕笔记本挂掉了。华硕的硬件搭配其实挺让我满意的,无奈就是舍不得在 皮实上面下功夫。于是我过了几个月的没有笔记本的日子。

后来我开始用Pimsleur的课程学习西班牙语,东西很不错,每天半小时也不累,就是要 每天都记起来有些困难。遇到这种,习惯性的就想到了cron,如果能够每天我一睁眼就听 到Pimsleur的声音,听完正好起床,岂不很妙?既省了自己记住要听,而且用的时早上脑 子最好的时间,而且还给了30分钟的赖床机会,多好。。。

问题是,我得有个能跑CRON服务的。我考虑过家里的路由器是中兴的,不能刷,手机太费劲 ,rapberry Pi太折腾也不符合我生活中求简的态度,最后买了个Macbook Pro Retina(这钱烧的….)。

真正实现倒是很简单的,一个脚本就解决。

#!/bin/bash

dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
player=afplay
playlist_file=$dir/playlist
next_to_play=`awk '/^[^#]/ {print; exit}' $playlist_file`

$player "$dir/$next_to_play"

#comment out the first valid line
awk '/^[^#]/ && !commented {$0="#"$0; commented=1};{print}' $playlist_file > playlist_tmp
mv playlist_tmp $playlist_file

playlist文件可以用ls -l > playlist的方法产生,播放过一个文件后脚本 会自动注释掉那一行。

cron里面就这么一句:

#play pimsleur spanish
0   6   *   *   *   ~/Public/play_queue.sh

上面的bash脚本,pygmentize居然拒绝给我语法高亮。