¿Cómo usar menos en un script sin obtener caracteres de escape ESC?

12

Cuando uso lessen la línea de comando, la salida es como ingrese la descripción de la imagen aquí

pero cuando uso lessdesde un script bash obtengo: <code> [! [ingrese la descripción de la imagen aquí] [1]] [1] </code>

¿Cómo puedo usar lessen un script bash y no obtener todos los caracteres de escape y hacer que funcione como lo hace en la línea de comandos interactiva?

Michael Durrant
fuente
1
Tiene una variable de entorno cuyo nombre comienza con LESSun valor establecido en su shell interactivo, pero no en su script de shell. Haga printenv | grep LESSpara descubrir su identidad, y luego puede configurarlo en su script de shell o usar las opciones de línea de comandos equivalentes.
zwol

Respuestas:

29

Usar -Rbandera:

-r o --raw-control-chars

Hace que se muestren los caracteres de control "sin formato". El valor predeterminado es mostrar caracteres de control utilizando la notación de intercalación; por ejemplo, un control-A (octal 001) se muestra como "^ A". Advertencia: cuando se usa la opción -r, less no puede realizar un seguimiento de la apariencia real de la pantalla (ya que esto depende de cómo responda la pantalla a cada tipo de carácter de control). Por lo tanto, pueden producirse varios problemas de visualización, como la división de líneas largas en el lugar equivocado.

-R o --CRAW-CONTROL-CHARS

Al igual que -r, pero solo las secuencias de escape de "color" ANSI salen en forma "en bruto". A diferencia de -r, la apariencia de la pantalla se mantiene correctamente en la mayoría de los casos. Las secuencias de escape de "color" ANSI son secuencias de la forma:

           ESC [ ... m

donde "..." es cero o más caracteres de especificación de color Con el fin de realizar un seguimiento de la apariencia de la pantalla, se supone que las secuencias de escape de color ANSI no mueven el cursor. Puede hacer pensar menos que los caracteres que no sean "m" pueden finalizar las secuencias de escape de color ANSI configurando la variable de entorno LESSANSIENDCHARS en la lista de caracteres que pueden finalizar una secuencia de escape de color. Y puede hacer que piense menos que pueden aparecer caracteres distintos a los estándar entre el ESC y el m configurando la variable de entorno LESSANSIMIDCHARS en la lista de caracteres que pueden aparecer.

De la lesspágina man.

taza de cafe
fuente