¿Causa que `less` salga con un código de estado distinto de cero?

10

Me gustaría tener la siguiente estructura de comando:

command && check-status | less && followup-command

Esto pausaría la ejecución mientras el usuario interactuaba less. ¿Cómo puede forzar el usuario lessa salir con un estado distinto de cero para evitar que se followup-commandejecute?

Actualmente estoy usando less 458 (POSIX regular expressions)

usuario2943160
fuente

Respuestas:

14

En el caso simple, puede pedir lessno manejar SIGINT, luego Control-Clo matará y el código de salida será distinto de cero. Haz esto con la opción -K.

command && check-status | less -K && followup-command

Como solución alternativa para versiones anteriores de less, puede hacer algo como

command && bash -c 'trap "exit 1" int;check-status | less -K;' && followup-command

Si no lo tiene -K, omítalo, pero tendrá que señalar y luego escribir quit también.

meuh
fuente
less -Ktodavía me devuelve un código de salida 0 en ctrl-c. v418 en mac y v436 en linux. less -K test; echo $? => 0
Matt
eso es triste. está bien en un v458 y v481 para mí. La página de manual para -Kexplícitamente dice salir ... (con estado 2) . ¿El tuyo?
meuh
el hombre solo dice Causes less to exit immediately> greenwoodsoftware.com/less/news.443.html
Matt
He agregado una solución para un menos antiguo.
meuh
2
Tenga en cuenta que ^Ctambién matará check-statussi aún no está terminado.
Stéphane Chazelas