Ausgaben im Terminal als Variable speichern

Mr. Brooks

Lt. Commander
Registriert
Aug. 2011
Beiträge
1.441
Hi,

der Titel ist vielleicht etwas blöde gewählt, ich weiß nicht wie ich das beschreiben soll. Ich habe hier ein Script mit dem ich einen Screenshot erstelle kann und im Hintergrund wird der Screenshot durch eine Texterkennung gejagt und der Text ausgegeben. Das will ich erweitern. Ich möchte zunächst die Position des letzten Mausklicks ermitteln. Über Google habe ich das gefunden

Code:
cnee --record --mouse | awk  '/7,4,0,0,1/ { system("xdotool getmouselocation") }'

Das läuft dauerhaft und zeigt die Mausklicks an. Einfach nur "xdotool getmouselocation" würde ständig die Mausposition, auch ohne Klick, angezeigen. Ich will das ganze in ein Script packen und nach dem 1. Klick abbrechen. "cnee" bietet nichts dafür, ich könnte aber die Ausgabe in eine Variable schreiben und abbrechen sobald etwas in der Variable steht. Nur wie schreibe ich das in die Variable? Das Programm läuft ja, wenn man es einfach im Temrinal startet, dauerhaft durch.

Code:
var=$(cnee --record --mouse | awk  '/7,4,0,0,1/ { system("xdotool getmouselocation") }')

oder

Code:
cnee --record --mouse | awk  '/7,4,0,0,1/ { system("xdotool getmouselocation") }' > "$var"

gehen nicht.

Mr. Brooks
 
Ich hab zwar von cnee noch nie was gehört, aber wenn ich dessen Manpage anschaue, gibt's da
Code:
       --events-to-record, -etr <n>
Intercept n numbers of events ( n<0 means forever)
Sollte das nicht sein, was du suchst?
 
Das Programm zeichnet einfach Mauszeigerbewegungen auf. Hier wird es genutzt um einfach aus Position beim Klick auszulesen.

Das geht so leider nicht, weil ein Event eben alles sein kann, nicht nur der Klick. Schon die Maus zu Bewegen ist ein Event und führt zum Abbruch des Programmes.
 
Okay, kein Problem, dann versuch einfach mal nur eine Zeile der Ausgaben zu lesen:
cnee --record --mouse | awk '/7,4,0,0,1/ { system("xdotool getmouselocation") }' | read var

Edit: Das ist natürlich nur möglich, wenn xdotool nur eine Zeile ausspuckt. Wenn es mehrere ausgibt, dann versuch's mit:
var="$(cnee --record --mouse | awk '/7,4,0,0,1/ { system("xdotool getmouselocation"); exit }')"
 
  • Gefällt mir
Reaktionen: Mr. Brooks und PHuV
Zurück
Oben