[linux-l] trap-Kommandoausführung

Lutz Meinert lutz.meinert at madvedge.de
Di Jun 8 18:16:00 CEST 2004


On Mon, 2004-06-07 at 23:06, Jens Dreger wrote:

> Die Loesung liegt wohl in der Formulierung [man bash]:
> 
>  When  a simple command other than a builtin or shell function is to
>  be executed, it is invoked in a separate execution environment that
>  consists of the following. [...]
> 
>  *  traps caught by the shell are reset to the values the inherited
>     from the shell's parent, and traps ignored by the shell are
>     ignored.
>  [...]

Hallo Jens,

vielen Dank, das ist die Lösung. (Hätte die bash-manpage doch noch etwas
genauer lesen sollen...)

So funktioniert nun auch alles, wenn man trap und auszuführendes
Kommando (NICHT-"builtin or shell function") bei der Signalbehandlung
zusammen in eine Subshell packt:

p10: lutz  ~/BlaTmp
$ (trap 'touch trapped' 2 3; find / bla) # mit CTRL-C abgebrochen
p10: lutz  ~/BlaTmp
$ ls
trapped

Und damit erklärt sich, warum ein "builtin or shell function" wie das
Ignorieren eines Signals auch ohne gemeisame Subshell funktioniert:
p10: lutz  ~/BlaTmp
$ trap "" 2 3
p10: lutz  ~/BlaTmp
$ find / bla # lässt sich nun nicht mehr mit CTRL-C abbrechen

Mit bewußtseinserweiterten Grüßen
Lutz


-- 

Lutz Meinert <lutz.meinert at madvedge.de>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20040608/a68ef40e/attachment.html>


Mehr Informationen über die Mailingliste linux-l