>>309
> awk '{print "foo"}' | cat でも動作しませんでした
動いているけど標準入力で待ちになってるから、わかりづらいだけだと思う
ABCとか適当に何かうって、CTRL-Dすればfooが最後に出力される
上の方の指摘通りBEGINつければawk '{print "foo"}' | catですぐにfooが返ってくる

awk '{print "foo"}' | echo もechoで標準入力待ち状態になってる。
しかしcatと違ってechoが新たに標準入力作ちゃってる( 上書き?)から、
適当に入力してもfooは返ってこない
awk 'BEGIN {print "foo"}' | echo も空白になる。

この例でecho でfooを表示させるには
awk 'BEGIN {print "foo"}' | echo $(cat)
awk 'BEGIN {print "foo"}' | xargs -I@ echo @
fooを明示的に引数として渡さないと表示されない 

むかしパイプからechoで値とれなくて躓いたから、この質問のレス主の気持ち分かる