shell で tap 関数を作ってみた
ruby にtap メソッドというものがあって、 メソッドチェーンしてる時のデバッグに便利なんですが、 shell でパイプライン使ってる時の デバッグにも使えそうなので、作ってみました。
ただし、処理を入れる事はできなくて 標準エラーに内容を表示するだけです。
#!/bin/bash function tap() { local input input=$(cat -) echo "$input" | sed -e 's/^/> /' >&2 echo "$input" >&1 }
使い方はこんな感じで 内容を表示させたい所に tap をはさみます。
$ echo "hoge\nfuga" | tap | sed -e 's/hoge/fuga/' > hoge > fuga fuga fuga
tap で出力した行には先頭に > をつけてみました。