Hallo, ich habe ein kleines Tool zur Messwerterfassung welches auf einem Embedded-Linux läuft. Leider ist die Bedienung nicht über Kommandozeilenparameter sondern das Programm hat ein "menü" d.h. mit scanf in einer Schleife wird auf einen Tastendruck gewartet um eine Aktion zu beginnen. Nun würde ich gerne einige Aktionen automatisiert ablaufen lassen. Gibt es irgendeine Möglichkeit, dass ich das Programm über ein Skript starte und Tastatureingaben in bestimmten Zeitintervallen an das Programm sende? Vielen Dank für eure Hilfe.
vielleicht geht es etwa in der Art:
1 | ( echo -n a ; sleep 5; echo -n b ; sleep 2; echo -n cd ; sleep 1; echo -n e ) | meintollesprogramm |
ach so: wenn scanf nach jeder Eingabe auf ein Return wartet, müssen bei den echo... ggf. die -n weg; die unterdrücken nämlich genau die Zeilenvorschübe.
das ging ja fix! supertipp, funktioniert einwandfrei. Danke für deine Hilfe.
Weitere Möglichkeiten für solche Zwecke bietet "expect" oder auch unter perl mit perl-Expect. Damit können auch Applikationen zum "mitmachen" überredet werden, die dynamische Menüstrukturen haben, oder die beim Start der Applikation erstmal stdin leersaugen. Auch Applikationen die nicht von stdin lesen, sondern von /dev/tty können damit bedient werden. Gruß
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.