O comando Ctrl + C não está encerrando o loop infinito (while)

5

Eu tenho este pequeno roteiro. Quando eu inicio e o terminal tem o foco Ctrl + C para o feh e então o loop while começa novamente. Eu estou esperando que, enquanto o terminal (!) Tiver o foco, Ctrl + C interrompe o loop while e mata também.

#!/bin/bash

sleep 2
while true; do
feh --cycle-once -zD  *.png
done

Alguém pode me dizer como posso conseguir o comportamento preferido aqui?

    
por marcus 01.05.2015 / 21:01

2 respostas

2

Tente isto:

#! /bin/bash

sleep 2
while feh --cycle-once -zD  *.png; do :; done

Dessa forma, o ciclo terminará quando o feh sair com um status diferente de zero (como acontece quando você o finaliza).

    
por user3472403 01.05.2015 / 22:23
1

Retire o sinal INT, por exemplo: Ctrl + C

mais informações aqui

trap trapint 2
function trapint {
    exit 0
}

No seu código assim:

#!/bin/bash

trap trapint 2
function trapint {
    exit 0
}

sleep 2
while true; do
feh --cycle-once -zD  *.png
done
    
por A.B. 02.05.2015 / 21:56