社内se × プログラマ × ビッグデータ

プログラミングなどITに興味があります。

bash で変数にパイプを入れる

例えば、以下のような変数を用意して、
GREPS="grep start | grep end"

こんな感じで実行できないかなと。
less test.log | ${GREPS}

$ less test-log | ${GREPS}
grep: |: そのようなファイルやディレクトリはありません
grep: grep: そのようなファイルやディレクトリはありません
grep: end: そのようなファイルやディレクトリはありません

だめだった。単なる文字列として解釈されてしまっている。
コマンドとして解釈してほしいので、eval を指定してみると、

$ less test-log | eval ${GREPS}
test,start,end

動いてくれました。