概要 memo.sh コマンドラインでメモを残すシェルスクリプトについて紹介する. 使い方 引数に保存したいメモの内容を入力する. $ memo.sh 'メモの内容' 例えば,以下のように利用する. $ memo.sh hoge $ memo.sh fefe $ memo.sh fuga $ cat ~/var/log/memo/2011-01-28.txt !!Daily Memo 2011-01-28 *hoge (20:25 JST) *fefe (20:25 JST) *fuga (20:25 JST) メモは日別に保管される.同日に複数回実行すれば,同じファイルに追加書き込みされる. 保存先は~/var/log/memo/hhhh-mm-dd.txtとしている.当然スクリプトなので,保存場所は変更可能. 時刻はdateコマンドで取得している.このため,タイムゾーンの設定によって出力が変わる.タイムゾーンを設定するには,環境変数TZを使う.以下に例を示す. $ env TZ=JST-9 date Fri Jan 28 20:29:06 JST 2011 $ env TZ=GMT date Fri Jan 28 11:29:16 GMT 2011 $ env TZ=UTC date Fri Jan 28 11:29:44 UTC 2011 コード 以下にコードを示す. #!/bin/sh init() { comment=$* day=`date +%F` fname=~/var/log/memo/$day.txt time=`date +"%H:%M %Z"` } create_file() { mkdir -p `dirname $fname` cat > $fname <<EOF !!Daily Memo ${day} EOF } update_file() { echo "*$comment ($time)" >> $fname } main() { init $* [ ! -f $fname ] && create_file update_fi...