Por que LESSOPEN está causando o meu comando travar?

1

Estou tentando ler uma versão filtrada de alguns arquivos em less usando a variável de ambiente LESSOPEN , mas não importa o quão simples seja meu pré-processador, o comando trava até eu enviar um SIGINT via Ctrl + C:

LESSOPEN='||cat' less foo bar

O que estou fazendo de errado aqui? (Note que não posso simplesmente passar a entrada como um pipe, já que estou abrindo vários arquivos em buffers separados.)

    
por Stuart P. Bentley 21.11.2017 / 04:37

1 resposta

1

Você esqueceu o %s , sem o qual cat não obteve um nome de arquivo e está simplesmente aguardando a entrada de stdin:

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

A página de manual diz:

To set up an input preprocessor, set the LESSOPEN environment variable to a command line which will invoke your input preprocessor. This command line should include one occurrence of the string "%s", which will be replaced by the filename when the input preprocessor command is invoked.

    
por 21.11.2017 / 05:11

Tags