Fish는 명령 시퀀스와 동일합니다 -- { cmd1 }

Fish는 명령 시퀀스와 동일합니다 -- { cmd1 }

Bash에서는 동일한 출력을 두 개의 명령으로 파이프할 수 있습니다 {}. 즉, 다음과 같습니다.

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

관련 정보