Causa `less` para sair com um código de status diferente de zero?

10

Eu gostaria de ter a seguinte estrutura de comando:

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

Isso interromperia a execução enquanto o usuário interagia less. Como o usuário pode forçar lessa saída com um status diferente de zero para impedir a followup-commandexecução?

Atualmente estou usando less 458 (POSIX regular expressions)

user2943160
fonte

Respostas:

14

No caso simples, você pode pedir lesspara não manipular o SIGINT, depois Control-Co eliminará e o código de saída será diferente de zero. Faça isso com a opção -K.

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

Como solução alternativa para versões mais antigas de less, você pode fazer algo como

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

Se você não tiver -K, omita-o, mas terá que sinalizar e digitar também sair.

meuh
fonte
less -Kainda retorna um código de saída 0 em ctrl-c para mim. v418 no mac e v436 no linux. less -K test; echo $? => 0
Matt
isso é triste. está ok em uma v458 e v481 para mim. A página de manual -Kexplicitamente diz exit ... (com status 2) . O seu?
Meu6
homem só diz Causes less to exit immediately> greenwoodsoftware.com/less/news.443.html
Matt
Eu adicionei uma solução alternativa para um menor de idade.
Meu6
2
Observe que o ^Ctambém matará check-statusse ainda não tiver terminado.
Stéphane Chazelas