¿Por qué LESSOPEN hace que mi comando se cuelgue?

¿Por qué LESSOPEN hace que mi comando se cuelgue?

Estoy intentando leer una versión filtrada de algunos archivos lessusando la LESSOPENvariable de entorno, pero no importa cuán simple sea mi preprocesador, el comando se bloquea hasta que lo envío SIGINTmediante Ctrl+C:

LESSOPEN='||cat' less foo bar

¿Qué estoy haciendo mal aquí? (Tenga en cuenta que no puedo simplemente pasar la entrada como una canalización, ya que estoy abriendo varios archivos en búferes separados).

Respuesta1

Olvidaste el archivo %s, sin el cual catno obtuviste un nombre de archivo y simplemente estás esperando la entrada de la entrada estándar:

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

Elpágina de manualdice:

Para configurar un preprocesador de entrada, configure la variable de entorno LESSOPEN en una línea de comando que invocará su preprocesador de entrada. Esta línea de comando debe incluir una aparición de la cadena "%s", que será reemplazada por el nombre del archivo cuando se invoque el comando del preprocesador de entrada.

información relacionada