¿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)

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.