J'ai certains fichiers PDF. Je veux inspecter chacun d'eux pendant 20 secondes. La façon dont j'essayais de le faire est la suivante: for file in *.pdf; do echo $file; evince $file; sleep 20s; killall evince; done
. Il affiche le premier fichier, mais ne le tue pas après 20s. Qu'est-ce qui ne va pas ici?
Je pense que vous avez juste oublié d'exécuter evince en arrière-plan:
for file in *.pdf; do echo $file; evince $file &; sleep 20s; killall evince; done
Remarquez le & après la commande evince.
Notez que vous n'avez pas à tout tuer: vous pouvez tuer l'instance spécifique:
for file in *.pdf; do
echo "$file"
evince "$file" &
sleep 20s
kill $!
done
$!
est le pid du dernier processus en arrière-plan. ( http://www.gnu.org/software/bash/manual/bashref.html#Special-Parameters )