iniciando e matando o processo evince em um loop

3

Eu tenho certos arquivos PDF. Eu quero inspecionar cada um deles por 20 segundos. A maneira que eu estava tentando fazer isso é como seguir: for file in *.pdf; do echo $file; evince $file; sleep 20s; killall evince; done . Ele exibe o primeiro arquivo, mas não o mata depois dos 20 anos. o que há de errado aqui?

    
por rivu 05.11.2013 / 21:25

2 respostas

1

Acho que você acabou de esquecer de executar o evince em segundo plano:

for file in *.pdf; do echo $file; evince $file &; sleep 20s; killall evince; done

Observe o & amp; após o comando evince.

    
por Rmano 05.11.2013 / 21:44
2

Note que você não precisa matar todos: você pode matar a instância específica:

for file in *.pdf; do
    echo "$file"
    evince "$file" &
    sleep 20s
    kill $!           
done

$! é o pid do processo de segundo plano mais recente. ( link )

    
por glenn jackman 05.11.2013 / 22:59