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)

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.