파이프 shenanigans 에서이 비디오 를 본 후 다음 명령을 시도했습니다 .
man -k . | dmenu -l 20 | awk '{print $1}' | xargs -r man -Tpdf | zathura -
기본적으로 사용자가 dmenu에 맨 페이지 목록을 인쇄하여 사용자가 그 중 하나를 선택할 수 있도록 한 다음 xargs를 사용하여 실행합니다 man -Tpdf %
(xargs의 입력에서 맨 페이지 git의 pdf를 stdout하기 위해 인쇄) .pdf를 pdf 리더 (zathura)에 전달합니다. ).
문제는 비디오에서 볼 수 있듯이 dmenu에서 하나의 맨 페이지를 선택하기 전에 pdf 리더가 시작된다는 것입니다. 그리고 Esc를 클릭하고 none을 선택하면 PDF 리더가 여전히 열려 문서가 전혀 표시되지 않습니다.
입력이 파일 끝에 도달하거나 입력을받을 때만 PDF 리더 (및 파이프 체인의 다른 명령)가 실행되도록하려면 어떻게해야합니까? 또는 체인 명령 중 하나가 0이 아닌 종료 상태를 반환 한 후 파이프 체인을 중지하려면 어떻게해야합니까 (dmenu가 옵션을 선택하지 않은 오류를 반환하면 다음 명령이 실행되지 않음)?
pipefail
입니다 .Kusalandanda의 대답에 언급 된 bash 옵션으로 인해 어떤 쉘을 요구했습니다 .