Bashでは、同じ出力を2つのコマンドにパイプできます{}
。つまり、次のようになります。
cmd0 | { cmd1 ; cmd2 ;} | cmd3
cmd1とcmd2はstdinからcmd0の出力を取得し、cmd3はcmd2の出力に追加されたstdinからcmd2の出力を取得します。
この機能の名前は何ですか{}
?魚にも同様の機能がありますか?
ベストアンサー1
この関数はコマンドのグループ化。
内部に魚の皮、これはbashと中括弧のbegin
代わりにおよびを使用して提供されるようです。バグレポートで見つけたばかりの機能です。end
{
}
シェルに関係なく、これを実行できる最初のコマンドは標準入力を使用します。
( bash
):
$ echo foo | { sed 's/oo/aa/'; sed 's/oo/um/'; }
faa
( fish
):
> echo foo | begin sed 's/oo/aa/'; sed 's/oo/um/'; end
faa
しかし、
> echo foo | begin echo cmd1 ; sed 's/oo/um/'; end
cmd1
fum