0이 아닌 상태 코드로`less`가 종료되게합니까?


10

다음과 같은 명령 구조를 갖고 싶습니다.

command && check-status | less && followup-command

사용자가와 상호 작용하는 동안 실행이 일시 중지됩니다 less. 실행 less을 막기 위해 사용자가 어떻게 0이 아닌 상태로 강제 종료 할 수 followup-command있습니까?

나는 현재 사용하고 있습니다 less 458 (POSIX regular expressions)

답변:


14

간단한 경우 lessSIGINT를 처리하지 말 것을 요구할 수 Control-C있으며 종료하면 종료 코드가 0이 아닙니다. 옵션으로이 작업을 수행하십시오 -K.

command && check-status | less -K && followup-command

이전 버전 이하의 해결 방법으로 다음과 같은 작업을 수행 할 수 있습니다.

command && bash -c 'trap "exit 1" int;check-status | less -K;' && followup-command

이없는 경우 -K생략하지만 신호를 내고 종료를 입력해야합니다.


less -K여전히 ctrl-c에서 0 종료 코드를 반환합니다. Mac에서는 v418, Linux에서는 v436 less -K test; echo $? => 0
Matt

그거 슬프다. v458과 v481에서는 괜찮습니다. 나의 매뉴얼 페이지 -K에는 exit ... (상태 2)가 명시 되어 있습니다. 당신은합니까?
meuh

사람은 말한다 Causes less to exit immediately> greenwoodsoftware.com/less/news.443.html
Matt

나이가 적은 사람을위한 해결 방법을 추가했습니다.
meuh

2
(가) 있습니다 ^C도 죽일 check-status이미 완성되어 있지 않은 경우.
Stéphane Chazelas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.