Fange CTRL-C unter Windows mit Git Bash / MINGW64 mit Go

9

Ich möchte bestimmten Code vor dem Beenden ausführen, wenn der Benutzer STRG-C drückt. Der Code ist in Go und ich möchte es auf Windows mit Git Bash / MINGW64 ausführen. Mit Go mache ich

%Vor%

Unter Windows funktioniert das, wenn ich eine Windows-Befehlszeile verwende, aber ich möchte, dass es auch auf MINGW64 / Git Bash funktioniert.

Ich habe auf Ссылка gefunden, dass

hinzugefügt wurde %Vor%

to ~ / .bashrc fängt das Signal SIGINT ab und verhindert, dass bash mein Programm beendet.

Dies funktioniert für mich auf MINGW32 mit Bash-Version

%Vor%

aber es funktioniert nicht auf MINGW64, Bash-Version

%Vor%

Was ist anders auf MINGW64 oder auf dieser neuen (Git) Bash-Version?

Zum leichteren Testen finden Sie hier ein minimales Beispiel, um die Verhaltensunterschiede zu sehen:

%Vor%

Ausgabe von MINGW32 (mit Trap '' SIGINT in ~ / .bashrc):

%Vor%

Der cleanup () - Code wird ausgeführt.

Ausgabe von MINGW64 (auch mit Trap '' SIGINT in ~ / .bashrc):

%Vor%

cleanup () wird nicht ausgeführt. : - (

    
alex 08.08.2016, 08:33
quelle

1 Antwort

0

Verwenden Sie winpty , um Signale in Git Bash für Windows korrekt abzufangen. Es kommt mit der Installation gebündelt, also alles, was Sie tun müssen, ist:

%Vor%     
Phil K 18.01.2018 14:34
quelle

Tags und Links