忘忧草^-^ 发表于 2005-12-4 22:31:33

用shell写的待办事项管理脚本,希望有用~

我之所以写这个是因为实在找不到一个能让我满意的待办事项管理软件(Todo List)。后来发现devtodo还不错,可是很多地方还是不能满足我的要求,于是写了这个。
注意:
    1.使用前必须安装devtodo,可以在这里下载:http://swapoff.org/DevTodo
    2.我用libstroke笔划输入启动的脚本,很方便。譬如我在桌面划一个T,就会弹出一个终端,里面列出了我的待办事项,然后我就可以进行一系列操作。例如:
          Stroke N78963 0 R N   Exec exec mrxvt -g 70x35+420+200 -ht -hb -e mytodo

[截图]
在附件里

[脚本代码如下]

#!/bin/sh

# 将一些信息保存在文件中,_verbose表示是否显示详细信息,即devtodo的选项-v
if [ -e ~/.mytodo ]
then
    read _verbose < ~/.mytodo
else
    _verbose=""
fi

while true
do
    clear
    echo
    # 输出的字符会有很多颜色~
    echo -e        "\e[30;1m       目前总共有\e[35;1m$(devtodo -A|wc -l)\e[30;1m件事情,\e[35;1m$(devtodo -v|egrep -i '\<completed:[ \t]*\<incomplete\>'|wc -l)\e[30;1m件事情还没有完成\e[37;1m:()\e[30;1m"
    echo        '------------------------------------------------------'
    echo
    devtodo $_verbose
    echo -e        '\e[30;1m------------------------------------------------------'
    echo -ne '执行[h]: \e[0m'
    read -a choice
   
    case "${choice[0]}" in
        q)
                break
                ;;
        v)
                echo -v > ~/.mytodo
                _verbose="-v"
                ;;
        nv)
                echo > ~/.mytodo
                _verbose=""
                ;;
        a)
                choice[0]=""
                devtodo -a ${choice[*]}
                echo        "成功添加了一条记录!"
                read
                ;;
        d)
                devtodo -d ${choice[1]}
                echo        "你完成了一件事情:)"
                read
                ;;
        p)
                devtodo --purge ${choice[1]}
                echo        "已完成地记录已全部清除!"
                read
                ;;
        A)
                echo
                echo -e        '\e[30;1m++++++++++++++++++++++++++全部记录+++++++++++++++++++++++++\e[0m'
                echo
                devtodo -A$_verbose
                read
                ;;
        s)
                choice[0]=""
                devtodo | grep -i ${choice[*]}
                read
                ;;
        e)
                devtodo -e ${choice[1]}
                echo        "你编辑了一条记录!"
                read
                ;;
        r)
                devtodo --remove ${choice[1]}
                echo        "你删除了一条记录!"
                read
                ;;
        h | *)
        echo
        echo -e        '\e[30;1m------------------------帮助--------------------------'
        echo
        cat <<- MENU
          A                        显示所有内容
          a <内容>        插入记录
          e <记录号>        编辑记录
          d <记录号>        标记为已完成
          p [记录号]        清除已完成的记录
          r <记录号>        删除记录
          v                        切换到详细内容
          nv                        切换到简洁内容
          s <关键字>        搜索匹配关键字的项目
          h                        帮助
          q                         退出
        MENU
        echo
        echo -n        '按回车键继续……'
                read
                ;;
    esac
   
done

ivyharry 发表于 2005-12-4 23:57:57

不错
但是还是觉得直接用英文方便点....

MichaelBibby 发表于 2005-12-5 08:28:03

Re: 用shell写的待办事项管理脚本,希望有用~


#!/bin/sh

# 将一些信息保存在文件中,_verbose表示是否显示详细信息,即devtodo的选项-v
if [ -e ~/.mytodo ]
then
    read _verbose < ~/.mytodo
else
    _verbose=""
fi
觉得这里的test用-f参数比较合适一些
楼主完全可以试试用shell自己从头写一个适合自己的todo程序 :)

todo list确实比较有意思,可以一下看到自己已经完成的和未完成的工作,有个详细的进度列表。

忘忧草^-^ 发表于 2005-12-5 09:20:08

对啊~

不过现在快毕业了,时间比较紧:(

我想过段时间用bash的jobs管理功能模拟出一个多线程的脚本写一个代理验证的东西。因为到目前为止没有发现一个好用的:(

BOoRFGOnZ 发表于 2005-12-5 09:46:59

:P

MichaelBibby 发表于 2005-12-5 10:41:30

对啊~

不过现在快毕业了,时间比较紧:(

我想过段时间用bash的jobs管理功能模拟出一个多线程的脚本写一个代理验证的东西。因为到目前为止没有发现一个好用的:(支持 :D

ryang 发表于 2006-1-9 22:18:58

可以使用 emacs 里的 todo 功能。
页: [1]
查看完整版本: 用shell写的待办事项管理脚本,希望有用~