やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

bashをテンプレート・エンジンとして使う

 テンプレート・エンジン用のソフトウェアなんていらなかった。

手順

  1. テンプレートファイルを作成する
  2. 設定値ファイルを作成する
  3. 実行する

1. テンプレートファイルを作成する

/tmp/work/template.md

---
created: ${Created}
author: ${Author}
---

# 

2. 設定値ファイルを作成する

/tmp/work/config.sh

Author=ytyaru
Created=`date "+%Y-%m-%d %H:%M:%S+0900"`

3. 実行する

  1. ターミナルを起動する
  2. 以下のコードを実行する
template_file=/tmp/work/template.md
config=/tmp/work/config.sh
. "${config}"
template="$(cat ${template_file})"
eval "echo \"${template}\""

 以下の出力が得られる。

---
created: 2019-02-20 16:23:24+0900
author: ytyaru
---

# 

所感

 あとはこれを元にして便利にしていくだけ。

mkmd タイトル

 たとえば上記のコマンドを打つと以下のパスに以下のファイルが出力される等。

/tmp/work/yyyyMMddHHmmss_タイトル.md

---
created: yyyy-MM-dd HH:mm:ss+0900
author: ytyaru
---

# タイトル

 ファイル出力はリダイレクトを使う。たとえば以下。

eval "echo \"${template}\"" > /tmp/work/some.md

 名前空間汚染が気になる。グローバル変数を汚したくないからサブシェルで起動したい。

参考

対象環境

  • Raspbierry pi 3 Model B+
  • Raspbian stretch 9.0 2018-11-13
  • bash 4.4.12
$ uname -a
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux