Bash에서 이벤트를 파이프하는 방법은 무엇입니까?

Bash에서 이벤트를 파이프하는 방법은 무엇입니까?

이 기사를 읽은 후:배쉬 이벤트 표시기!?commandString, 예를 들어 만들 수 있습니다 . 그래서 나는 이렇게 했습니다:

$find somedir -iregex '.*Makefile.*'
$bla/bla/Makefile
$bla/bla/bla/Makefile
$...

이제 이벤트 디자이너와 함께 파이프를 사용하고 싶습니다.

$!?nameOfFile | sed -n 'p1' | xargs cd

잘:

bash: !?Makefile | sed -n '1p': event not found

전체 행을 이벤트로 사용합니다. 그러면 end추가 처리를 위해 이벤트를 어떻게 만들 수 있습니까?

답변1

링크된 매뉴얼에서:

문자열 바로 뒤에 개행 문자가 오면 후행 "?"를 생략할 수 있습니다.

문자열이기 때문에아니요그 뒤에는 개행 문자가 오고, 그 뒤에는 다음이 있어야 합니다 ?.

!?nameOfFile? | sed -n 'p1' | xargs cd

xargs cd 하지만 이는 별도의 프로세스에서 실행되므로 cd쉘이 영향을 받지 않으므로 도움이 되지 않습니다 . 다음과 같은 것이 필요합니다.

cd "$(!?nameOfFile? | head -n1)"

관련 정보