O problema é que killall
está esperando um padrão que corresponda a um nome de processo em vez de seu PID, enquanto $$
fornece o PID de processo atual. Você deseja usar kill
.
Além disso, se você quiser remover um diretório junto com todo o seu conteúdo, precisará da opção -r
para rm
:
Por fim, qualquer coisa que você fizer depois de matar o processo não entrará em vigor: mova o kill
para o final do trap
e remova o exit
ao mesmo tempo:
trap 'rm -rf "$folder2";kill $$' 18 20 24
Se você quiser interromper o funcionamento do for
antes de remover $folder2
, use break
:
trap 'break;rm -rf "$folder2";kill $$' 18 20 24