generated at
Shell Scriptは関数指向で書く
Shell Scriptは手続的に書くと辛いが、考え方を返ると割と良い感じになる


処理対象のデータは標準入力で受け取る
pipeを多用する
いちいち変数定義とかしない
forと配列は使用しない
代わりに while read -r を使う ref
入力用の .txt を用意しといて、それを入力として渡す
$ cat data.txt | hoge


テンプレ
ex.sh
awk 1 | while read -r line do echo "$line" | nkf -W8MQ | sed 's/=$//' | ... done
$ chmod +x ./ex.sh
$ cat input.txt | ./ex.sh

awk 1がないと最終行が処理されなかったmrsekut
もっと良い方法あるかも


コマンドは基本的に標準入力から受け取るもの、と考える
fileから入力できる方が例外
echo cat が重宝する
配列は使わない
代わりに while と、 read -r の組み合わせを使う

Unixコマンドは直交性が良いので、ShellScriptで関数作るときも直交性を意識すれば、元のコマンドと同等の直交具合を保ったままプログラミングができそう、というのを思う
とはいえ、細かく関数に切るわけでも無いので、関数志向の手続き型感があるmrsekut
だから、1行1行の意図が分かりづらい
出力の整形のために sed -e 's|^ | |' とか書いてても、これだけじゃ推測できない




参考
良い記事mrsekutmrsekutmrsekutmrsekut