Causa `less` per uscire con un codice di stato diverso da zero?


10

Vorrei avere la seguente struttura di comando:

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

Ciò metterebbe in pausa l'esecuzione mentre l'utente interagiva con less. Come può l'utente forzare lessl'uscita con uno stato diverso da zero per impedire l' followup-commandesecuzione?

Attualmente sto usando less 458 (POSIX regular expressions)

Risposte:


14

Nel caso semplice, puoi chiedere di lessnon gestire SIGINT, quindi Control-Clo ucciderà e il codice di uscita sarà diverso da zero. Fallo con l'opzione -K.

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

Come soluzione alternativa per le versioni precedenti di less, puoi fare qualcosa di simile

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

Se non lo hai -K, omettilo, ma dovrai segnalare e quindi digitare anche quit.


less -Krestituisce ancora un codice di uscita 0 su ctrl-c per me. v418 su mac e v436 su linux. less -K test; echo $? => 0
Matt,

è triste. per me va bene su una v458 e una v481. La pagina man per -Kesplicitamente dice exit ... (con lo stato 2) . Il tuo?
Meuh

l'uomo dice solo Causes less to exit immediately> greenwoodsoftware.com/less/news.443.html
Matt

Ho aggiunto una soluzione alternativa per un meno vecchio.
Meuh

2
Nota che ^Cucciderà anche check-statusse non è già finito.
Stéphane Chazelas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.