Как реализовать ctrl+ cобработку в сценариях bash, чтобы сценарий прерывался, а также текущую команду, запущенную сценарием?
(Представьте, что есть сценарий, который выполняет некоторую длительную команду. Пользователь нажимает ctrl+ cи прерывает команду, но сценарий продолжается.) Мне нужно, чтобы он вел себя так, что они оба убиты.
bash
shell-scripting
kolypto
источник
источник
bg
, убить ее или продолжить в переднем планеfg
. Смотрите раздел руководства по bashJOB CONTROL
.Ответы:
Вы делаете это путем создания подпрограммы, которую вы хотите вызывать при получении SIGINT, и вам нужно запустить
trap 'subroutinename' INT
.Пример:
источник
EXIT
в ловушку в случаях, когда у вас есть что-то, что вы хотите выполнить в любое время, когда скрипт завершает работу независимо от того, как он остановился. (заKILL
исключением, конечно.)