Fish

命令序列的魚等價物 - { cmd1 ;cmd2;}

  • February 6, 2020

在 bash 中,您可以使用 將相同的輸出傳遞給兩個命令{},即:

cmd0 | { cmd1 ; cmd2 ;} | cmd3

cmd1 和 cmd2 在它們的標準輸入中獲得 cmd0 的輸出,而 cmd3 在其標準輸入中獲得 cmd2 的輸出附加到 cmd2 的輸出。

此功能的名稱是什麼{},魚中是否有等價物?

該功能稱為命令分組

fish shell中,它似乎是通過使用beginandend代替 bash{}大括號來提供的——我只是從錯誤報告中發現的一個功能:

請注意,無論 shell 是什麼,能夠執行此操作的第一個命令都將使用標準輸入 ex。

(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

引用自:https://unix.stackexchange.com/questions/566171