Como usar menos em um script sem obter caracteres de escape ESC?

12

Quando eu uso lessna linha de comando, a saída é como insira a descrição da imagem aqui

mas quando uso lessde dentro de um script bash, recebo: <code> [! [insira a descrição da imagem aqui] [1]] [1] </code>

Como posso usar lessem um script bash e não obter todos os caracteres de escape e fazê-lo funcionar como na linha de comando interativa?

Michael Durrant
fonte
1
Você tem uma variável de ambiente cujo nome começa com LESSdefinido com algum valor no seu shell interativo, mas não no seu script de shell. Faça printenv | grep LESSpara descobrir sua identidade e, em seguida, você também pode configurá-lo no seu script shell ou usar as opções de linha de comando equivalentes.
Zwol

Respostas:

29

Usar -Rsinalizador:

-r ou --raw-control-chars

Faz com que caracteres de controle "brutos" sejam exibidos. O padrão é exibir caracteres de controle usando a notação de sinal de intercalação; por exemplo, um controle A (octal 001) é exibido como "^ A". Aviso: quando a opção -r é usada, menos não consegue acompanhar a aparência real da tela (pois isso depende de como a tela responde a cada tipo de caractere de controle). Assim, vários problemas de exibição podem resultar, como longas filas sendo divididas no lugar errado.

-R ou --ARRA-CONTROL-CHARS

Como -r, mas apenas as seqüências de escape "cor" ANSI são exibidas no formato "bruto". Ao contrário de -r, a aparência da tela é mantida corretamente na maioria dos casos. As sequências de escape "cor" ANSI são sequências no formato:

           ESC [ ... m

onde o "..." é zero ou mais caracteres de especificação de cores Para controlar a aparência da tela, presume-se que as seqüências de escape de cores ANSI não movam o cursor. Você pode pensar menos que caracteres diferentes de "m" podem finalizar seqüências de escape de cores ANSI configurando a variável de ambiente LESSANSIENDCHARS na lista de caracteres que podem finalizar uma sequência de escape de cores. E você pode pensar menos que caracteres diferentes dos padrões podem aparecer entre o ESC e o m, configurando a variável de ambiente LESSANSIMIDCHARS na lista de caracteres que podem aparecer.

Da lesspágina do manual.

coffeMug
fonte