ナナマルイチ


1行のメモがとれるシェルスクリプト

2018/06/28

まずは、シェルスクリプトを書くファイルを用意し、Emacsでひらく。

$ touch memo.sh && emacs $_

そして、以下の内容を書く。

#!/bin/bash
MEMO_DIR=~/Documents/memo/$(date "+%Y/%m")
MEMO_FILE=$(date "+%d.txt")

if [ ! -d "$MEMO_DIR" ];
then
  mkdir -p $MEMO_DIR
fi

if [ ! -f "$MEMO_DIR/$MEMO_FILE" ];
then
  touch $MEMO_DIR/$MEMO_FILE
  echo -e "$(date "+%Y/%m/%d")\\n" >> $MEMO_DIR/$MEMO_FILE
fi

if [ $# -eq 1 ];
then
    TIME=$(date '+%H:%M')
    echo -e "$TIME\n${1}\n" | tee -a $MEMO_DIR/$MEMO_FILE
else
    emacs $MEMO_DIR/$MEMO_FILE
fi

書いたら保存して「/usr/local/bin」以下にコピー。

$ sudo cp memo.sh /usr/local/bin/memo

コピーしたら、実行権限を付加する。

$ sudo chmod a+x /usr/local/bin/memo

以上で作業は終了...。

メモをとるときは以下のようにする。

$ memo 1行のメモです

すると「~/Documents」以下に「memo/2018/06/28.txt」のようなディレクトリとファイルが作られ、書いた時間とともにメモが追記されていく。

また、ターミナルで[memo]だけを入力すると、メモしたファイルがEmacsで開かれて編集なりができる。

これから使いたい。