Interrupt mit mittlerer Maustaste an Terminal senden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
ulliroyal
Beiträge: 64
Registriert: 30.01.2015 00:43:36

Interrupt mit mittlerer Maustaste an Terminal senden

Beitrag von ulliroyal » 02.02.2015 11:38:40

Ctrl-c mit mittlerer Maustaste (MMB) in laufendes Bash-Script auslösen/triggern.

Hallo Cracks & Freaks,

Die Tastenkombination Ctrl-C oder „^C“ mit der Tastatur über einem laufenden Bash-Script ausgelöst steht für „Signal Interrupt“ (SIGINT) und beendet den Prozess.

Für meinen Workflow in der Testphase wäre es eine große Hilfe, wenn ich das mit dem MMB-Einfügen erledigen könnte, gefolgt von dem modifizierten Script-Befehl:

Code: Alles auswählen

Script läuft
Script läuft
Script läuft
SGINT mit MMB-Auslösen:

Code: Alles auswählen

^C ;./script.sh

modifiziertes Script läuft
modifiziertes Script läuft...
funktioniert nicht,
und 2 Stunden Meta-Crawlern;) hat mir auch nicht geholfen.


Vielleicht wisst ihr die Antwort auf die Schnelle.

Danke

Benutzeravatar
BerndHohmann
Beiträge: 70
Registriert: 17.02.2015 23:26:44
Wohnort: Nidderau
Kontaktdaten:

Re: Interrupt mit mittlerer Maustaste an Terminal senden

Beitrag von BerndHohmann » 19.02.2015 20:13:18

Mir ist nur eine etwas halsbrecherische Lösung eingefallen...

Lt http://blog.hanschen.org/2009/10/13/mou ... xbindkeys/ kann xbindkeys auch mit Mäusen umgehen.

Da könnte man versuchen mit xte (aus xautomation) ein ctrl+c abzuschicken. Alternativ könnte dein zu testendes Script seine eigene PID nach /var/run/ulliroyal schreiben und xbindkeys ruft ein separates batch auf welches dann mit "kill" den passenden SIGirgendwas an den Prozess losschickt (oder man nimmt gleich pkill wenn das Testscript einen aussagekräftigen Namen und Kommandozeile hat).

Bernd

Benutzeravatar
ulliroyal
Beiträge: 64
Registriert: 30.01.2015 00:43:36

Re: Interrupt mit mittlerer Maustaste an Terminal senden

Beitrag von ulliroyal » 19.02.2015 21:15:10

Danke Bernd,
ich bleibe am Ball, bin aber leider die nächsten Tage mit was„unwichtigem“ :( beschäftigt.

Die Nuss muss zu knacken sein !!

brummer
Beiträge: 181
Registriert: 19.02.2007 19:21:23

Re: Interrupt mit mittlerer Maustaste an Terminal senden

Beitrag von brummer » 03.03.2015 06:09:09

Du kannst mouse trapping in der bash aktivieren, siehe:
man console_codes

hier ist ein kleines Beispiel:

Code: Alles auswählen

#!/bin/bash

# switch on mouse trapping
echo -e "\e[?9h"

while :
do
	read -r -d '' -sn6 MOUSE 
	#echo "$MOUSE"
	if [[ $MOUSE == *"!"* ]]; then 
		echo "middle Mouse Button pressed"
		# switch of mouse tarpping
		echo -e "\e[?9l"
		# send ctrl+c to own pid
		kill -s 2 $$
	elif [[ $MOUSE == *"\""* ]]; then
		echo  "right Mouse Button pressed"
	elif [[ $MOUSE == *" "* ]]; then
		echo "left Mouse Button pressed"
	fi
done
# switch of mouse trapping
echo -e "\e[?9l"
exit

Antworten