Przechwytywanie ctrl+c w skryptach Bash

Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał

Jeśli zdarzy Ci się mieć jakieś skrypty Bash i chciałbyś je przerwać w czysty sposób, jest na to sposób. Musisz przechwycić polecenie ctrl+c. Jeśli masz w skryptach jakąś pętlę while, to bez tego naciśnięcie dowolnego polecenia przerwania jest skuteczne tylko połowicznie.

Bash
#!/bin/bash

trap ctrl_c INT

function ctrl_c() {
  echo "** Trapped CTRL-C"
  exit
}

while
do
  echo -n "."
done

Teraz, z przechwyconym ctrl+c, możesz czysto przerwać swój skrypt bez pozostawiania działających procesów.

Wersja Markdown

Wszystkie treści na tej stronie są udostępniane na licencji Uznanie autorstwa – Użycie niekomercyjne – Bez utworów zależnych 4.0 Międzynarodowe (CC BY-NC-ND 4.0). Cytuj jako: Michał Sobczak, „Przechwytywanie ctrl+c w skryptach Bash”, 13 sierpnia 2022, https://michalasobczak.pl/pl/posts/trapping-ctrlc-in-bash-scripts.html