주어진다면 , 나는 끝나면 죽이고 a | b
싶다 . 대화형 프로세스이며 완료 시 종료되지 않습니다(b
a
b
a
fzf
내 경우) 전체 프로세스는 서브쉘 a | b
에서 실행됩니다 $()
.
지금까지 내가 생각해낸 것은
echo $({ sleep 5 & a=$!; { wait $a; kill $b; } } | { fzf & b=$!; })
sleep
Delegate a
와 fzf
Delegate 는 b
예제의 결과를 사용하는데 echo
, 제 경우에는 의 매개변수입니다 ssh
. 이것은 $b
PID가 아닌 것 같습니다 fzf
. 비어 있습니다. 내가 이해한 바에 따르면, {}
대신 을 사용했기 때문에 이는 사실이 아니 ()
어서 서브쉘에서 실행되지 않습니다.