[bash] control-c abfangen?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Wikinator
Beiträge: 259
Registriert: 11.06.2005 13:39:20
Wohnort: Freiburg
Kontaktdaten:

[bash] control-c abfangen?

Beitrag von Wikinator » 23.12.2006 11:46:11

Hallo,

ich habe ein Bash-Script, das intern weitere Programme aufruft (z.b. /usr/bin/find). Wenn diese Programme ausgeführt werden, wie kann ich ein Ctrl-C abfangen, so dass zwar das interne Programm nicht aber das Script beendet wird?
Debian/unstable
copy

Computer sind die logische Weiterentwicklung des Menschen — Intelligenz ohne Moral.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 23.12.2006 12:01:27

Prinzipiell kann man signale mit dem Kommando trap abfangen. Siehe dazu

Code: Alles auswählen

man bash
Ein Minimalbeispiel könnte so aussehen

Code: Alles auswählen

#!/bin/bash

function signal()
{
  echo "received sigint"
}

trap signal SIGINT

i=0
while [ $i -lt 100 ]
do
  echo $i
  sleep 1
  let i++
done
MfG GoKi
:wq

Benutzeravatar
Wikinator
Beiträge: 259
Registriert: 11.06.2005 13:39:20
Wohnort: Freiburg
Kontaktdaten:

Beitrag von Wikinator » 23.12.2006 12:36:41

danke, das habe ich gesucht!
Debian/unstable
copy

Computer sind die logische Weiterentwicklung des Menschen — Intelligenz ohne Moral.

Antworten