Проблема - это killall
ожидает шаблон, который соответствовал бы имени процесса, а не его PID, в то время как $$
предоставляет текущий процесс PID. Вы хотите использовать kill
вместо этого.
Кроме того, если Вы хотите удалить каталог наряду со всем его содержанием, Вам нужно -r
переключатель к rm
:
Наконец, что-либо, что Вы делаете после уничтожения процесса не вступит в силу: переместитесь kill
в конец trap
и удалите exit
в целом:
trap 'rm -rf "$folder2";kill $$' 18 20 24
Если Вы хотите остановиться for
цикл от работы перед удалением $folder2
, можно использовать break
:
trap 'break;rm -rf "$folder2";kill $$' 18 20 24
экспортировать PS1[1189643] (из-за огромных синтаксических различий между различными оболочками в сочетании с определенным "взрывным" поведением одних оболочек при наличии подсказок других оболочек). Мы все договорились о переносе инициализации [1189644]PS1[1189645] в интерактивные файлы запуска оболочек, то есть [1189646]~/.mkshrc[1189647], [1189648]~/.kshrc[1189649], [1189650]~/.bashrc[1189651] и т.д.
Отказ от ответственности: я - разработчик мкш.[1189227].