Linux的な考え方
そういえば、最近シェルスクリプトとかPerlのスクリプトとかをぽちぽち書いていて、少し考え方変わった、というか変えた。
シェルの中で
echo "hogehoge" | tee logfile.log
という様に「出力するデータの取り扱い方」まで決めてしまった作りにしていたのだが、それはセンス無かったかも知れない。
あくまで使い方は、ユーザーに任せる、というかシェルはフィルタを前提に作る、部品である。
上手く言えないけど、そんな感じ。
基本作るシェルは「ある仕事」しかしない。そいつに欲張ってlog吐く機能をつけたり、色々やらせたり剃る必要はない。
ログとりたいなら使う人がこうする。
sh hoge.sh > hoge.log 2>&1
基本、処理結果を標準出力で返す関数のように作ろう。
組み合わせて使うことを前提に作ったほうが何かと捗るそんな気がした午前4時前。