2012/02/01

shellでメモを取る

僕はメモするのがけっこう好きです。けっこういろいろなことをメモします。技術メモ、思いついたこと、ToDo、作りたいプログラム、ブログネタ、コード片、ワンライナー、Bookmark、quoteなどなど。このブログに書く内容はだいたいそのメモがもとになってます。

普段はemacsでメモしてます。emacsのorg-rememberで管理してます。以前はchangelogメモを使ってましたがorg-rememberの方が快適です。キー一発ですぐメモできて、org-agendaで時系列でメモを読んだりタグ検索したり。家や職場など各マシンごとにmemoがあって共有できるようにしているので、org-agendaすると全てのメモが時系列に並んで表示されるので、いつ何をしていたかすぐわかります。

で、org-rememberにメモするほどじゃないけど、どこかに残しておきたいメモがあるんですよね。ちょくちょく。いままでは紙や付箋に書いたりしてました。せっかくなんでそういうコマンド作ってみようかなーと試しに作って使ってみてます。こんな具合。
$ memo -tdemo shellでメモ取りたい
$ memo org-rememberに記録するほどでもないもの用
$ memo org-rememberにはのちのち参照するものと各マシンで共有したいもの
$ memo このメモは書き捨てとか直近のタスクとか付箋に書くようなもの
$ memo '-----------------------------------------------------------------'
$ memo -d
2012-02-01 22:27:23 [demo] shellでメモ取りたい
2012-02-01 22:27:40  org-rememberに記録するほどでもないもの用
2012-02-01 22:28:24  org-rememberにはのちのち参照するものと各マシンで共有したいもの
2012-02-01 22:29:36  このメモは書き捨てとか直近のタスクとか付箋に書くようなもの
2012-02-01 22:29:46  -----------------------------------------------------------------
内容は~/.shellmemoに保存される。僕の場合は自動でバックアップ取ってるディレクトリにメモ本体を置いて.shellmemoはシンボリックリンクにしてる。 ソースはこんな感じ。
#!/bin/sh
MEMO_PATH="$HOME"/.shellmemo
TAG_NAMES=""
usage () {
echo 'Usage:memo [-dth] <memo>'
echo ' -d : display memo records'
echo ' -t : tag'
echo ' -c : clear'
echo ' -h : help'
exit 0
}
display () {
cat "$MEMO_PATH"
exit 0
}
if [ "$#" -eq 0 ] ; then
# usage
display
fi
while getopts hcdt: OPT
do
case $OPT in
"t" ) TAG_NAMES='['"$OPTARG"']' ; shift ;;
"c" ) CLEAR="TRUE" ;;
"d" ) display ;;
"h" ) usage ;;
esac
done
if [ "$CLEAR" = "TRUE" ]; then
echo -n '' > $MEMO_PATH
else
echo `date +"%Y-%m-%d %H:%M:%S"` "$TAG_NAMES" "$1" >> $MEMO_PATH
fi
view raw memo.sh hosted with ❤ by GitHub
なかなか便利かもしれない。

参考



入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

0 件のコメント:

コメントを投稿