Jak zaimplementować obsługę ctrl+ cskryptów bash, aby skrypt został przerwany, a także aktualnie uruchomioną komendę uruchomioną przez skrypt?
(Wyobraź sobie, że istnieje skrypt, który wykonuje jakieś długo działające polecenie. Użytkownik uderza ctrl+ ci przerywa polecenie, ale skrypt kontynuuje.) Potrzebuję go, aby zachowywał się tak, aby obaj zostali zabici.
bash
shell-scripting
kolypto
źródło
źródło
bg
, zabić ją lub kontynuować na pierwszym planiefg
. Zobacz sekcję strony bashJOB CONTROL
.Odpowiedzi:
Robisz to, tworząc podprogram, do którego chcesz zadzwonić po otrzymaniu SIGINT, i musisz uruchomić
trap 'subroutinename' INT
.Przykład:
źródło
EXIT
w przypadkach, gdy masz coś, co chcesz wykonać za każdym razem, gdy skrypt kończy działanie, niezależnie od tego, jak się zatrzymał. (KILL
oczywiście z wyjątkiem).