¿Qué significa `MENOS = + / EJEMPLO \:`?

11

En man parallel_tutorial(para GNU paralelo) he encontrado la siguiente magia negra:

LESS=+/EXAMPLE\: man parallel

Buscando en las manpáginas para man, lessy bash, parece que esto puede tener algo que ver con un less preprocesador , pero no estoy seguro, y los primeros intentos que hizo para buscar otras páginas de manual con esta sintaxis fallado.

¿Qué +/...\:significa en bash?

isomorfismos
fuente
Su sección resaltada no tiene \: falta la barra diagonal inversa. ¿Quiso decir?
mike65535
@ mike65535, está escrito, si presiona 'editar', puede verlo. Sin embargo, no se muestra.
Aganju
Escapar de \ con otra barra invertida debería funcionar. Para abreviar para que yo edite sin embargo.
Orphevs

Respuestas:

11

No significa nada en bash . Es un texto arbitrario que se almacena en la variable de entorno $ LESS para ese comando único.

Pero cuando ejecuta less, lee el contenido de $ LESS y los interpreta como argumentos de línea de comandos. Por lo general, aquí es donde almacenaría la configuración.

( menos no es un preprocesador: es un simple visor de archivos de texto, también conocido como un buscapersonas. Tenga en cuenta que manno tiene un lector incorporado: solo genera el texto a través de groff (el preprocesador real), luego siempre ejecuta menos o algún otro buscapersonas para desplácese por él. Los autores de ese tutorial asumen que su sistema usará menos porque es muy ubicuo).

Cuando menos encuentra argumentos que comienzan con a +, el resto se interpreta como comandos o pulsaciones de teclas para simular: por ejemplo, si fuera +Gmenos, fingiría que presionó G después de abrir el archivo y se desplazaría hacia abajo.

En su caso, menos finge haber escrito /EXAMPLE:después de abrir el archivo. /es la tecla / comando de búsqueda en menos , y el resto es el texto a buscar.

El resultado es que el comando abre la página de manual de "paralela", luego se desplaza hacia abajo a la sección titulada "EJEMPLO".

usuario1686
fuente
1
Lo que al autor del tutorial aparentemente le pareció demasiado difícil de expresar en inglés ordinario.
usuario1686
Bueno, es GNU ...: P Excelente respuesta por cierto, apareció justo cuando comencé a escribir ¡tan buen momento también!
bertieb
1
Estrictamente hablando, la barra diagonal inversa antes del colon es relevante bash, ya que evita que el colon tenga un significado especial, que no tiene bash, aunque puede tener otro caparazón.
AFH
1
@grawity El contexto en el tutorial es: "Luego mira los EJEMPLOS después de la lista de OPCIONES en man parallel (Usa LESS = + / EXAMPLE \: man parallel)". ¿Cómo lo habrías expresado en inglés ordinario?
Ole Tange
7

Como lo indica la excelente respuesta de Grawity , es una forma de dar instrucciones al lessbuscapersonas. En este caso específico, usando el manual y el tutorial de GNU Parallel, facilita la lectura de los ejemplos.

Como puede ver incluso en la tabla de contenido del manual en línea , cada ejemplo comienza con la cadena EXAMPLE:, por lo que el comando le LESS=+/EXAMPLE: man parallelpermite saltar al primer ejemplo y a los ejemplos posteriores presionando n(para la próxima coincidencia ).

Por ejemplo:

captura de pantalla de saltar a través del manual

( cada salto en la sección manual es una npulsación de tecla )

bertieb
fuente