Você pode trap
[ 1 ], [ 2 ] a Ctrl + C signal, o INT, e wait
para o final de cada processo.
#!/bin/bash
trap ctrl_c INT
function ctrl_c() {
wait # wait for the end of all child processes
exit # <<--- put here your exit code exit 1, ...
}
shopt -s nullglob
for f in rsnc*
do
pigz -9 -- $file & # Execute in background
wait $! # Wait for the end of the last command
done
Nota
Há muitas maneiras de percorrer todos os arquivos em um diretório [ 3 ] , mas é sempre melhor evitar analisar a saída de ls
[ 4 ] .
Referências
- Trapping ctrl-c no Bash , um exemplo simples.
- Armadilhas do Guia de Bash para Iniciantes - Capítulo 12.
- Faça um loop por arquivos .
- Algumas razões pelas quais é melhor evitar analisar o resultado ls .