LESSOPEN으로 인해 명령이 중단되는 이유는 무엇입니까?

LESSOPEN으로 인해 명령이 중단되는 이유는 무엇입니까?

less환경 변수를 사용하여 특정 파일의 필터링된 버전을 읽으려고 하는데 LESSOPEN전처리기가 아무리 단순하더라도 SIGINTCtrl+C를 통해 보낼 때까지 명령이 중단됩니다.

LESSOPEN='||cat' less foo bar

내가 여기서 뭘 잘못하고 있는 걸까? (별도의 버퍼에서 여러 파일을 열 때 입력을 파이프로 연결할 수는 없습니다.)

답변1

%s그것 없이는 cat파일 이름을 얻을 수 없다는 것을 잊었습니다 . 표준 입력에서 입력을 기다리십시오.

LESSOPEN='||cat %s' less foo bar # works
LESSOPEN='||cat' less foo bar # hangs

이것맨페이지설명하다:

입력 전처리기를 설정하려면 입력 전처리기를 호출할 명령줄에 LESSOPEN 환경 변수를 설정합니다. 명령줄에는 "%s" 문자열이 한 번 포함되어야 하며, 입력 전처리기 명령이 호출될 때 파일 이름으로 대체됩니다.

관련 정보