Bash - Eingabe auf UI vortäuschen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tr01
Beiträge: 80
Registriert: 10.01.2015 10:04:54
Wohnort: /root/

Bash - Eingabe auf UI vortäuschen

Beitrag von tr01 » 13.04.2015 18:19:47

Hallo,

ich habe eine Frage zu Bash.

Ich brauche ein Skript, dass eine -jar startet. Dieses Programm startet eine Konsolen-UI, ähnlich wie z.B. ftp oder Python.
Jetzt möchte ich auf dieser UI automatisiert die einige Eingaben simulieren und diese sollen das vom Programm weiterverarbeitet werden.

Auf http://www.administrator.de/frage/linux ... 04713.html wird die Möglichkeit mit

Code: Alles auswählen

 /usr/bin/xvkbd -text "\[L]"
beschrieben.

Das kleine Problem daran ist, dass ich einen Fehler bekomme:

Code: Alles auswählen

bash: /usr/bin/xvkbd: Datei oder Verzeichnis nicht gefunden
Wie kann ich das umsetzen???

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Bash - Eingabe auf UI vortäuschen

Beitrag von cronoik » 13.04.2015 18:24:09

Unabhängig von deinem Ursprungsproblem hilft dir

Code: Alles auswählen

apt-get install xvkbd
Hilf mit unser Wiki zu verbessern!

Benutzeravatar
feltel
Webmaster
Beiträge: 10446
Registriert: 20.12.2001 13:08:23
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Leipzig, Germany
Kontaktdaten:

Re: Bash - Eingabe auf UI vortäuschen

Beitrag von feltel » 13.04.2015 18:26:39

Schau Dir mal Debianexpect an. Vielleicht kommst Du damit weiter.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bash - Eingabe auf UI vortäuschen

Beitrag von Cae » 14.04.2015 16:58:09

Bei vernuenftigen Programmen:

Code: Alles auswählen

$ echo open localhost | ftp
bzw.

Code: Alles auswählen

$ ftp <<EOF
open localhost
get some-file
EOF
$ 
Bei weniger vernuenftigen Programmen kann man zum Beispiel mit Debianscreen "Eingaben machen":

Code: Alles auswählen

$ screen -dmS ftp-session ftp
$ screen -rX  ftp-session stuff 'open localhost\n'
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

tr01
Beiträge: 80
Registriert: 10.01.2015 10:04:54
Wohnort: /root/

Re: Bash - Eingabe auf UI vortäuschen

Beitrag von tr01 » 14.04.2015 18:27:25

Ich hab jetzt ein bisschen mit Debianxvkbd rumprobiert und jetzt folgende Idee:

output.sh (schickt nach 10 sek. exit und ein Enter):

Code: Alles auswählen

#!/bin/bash
sleep 10
xvkbd -text "exit \r"
Wenn ich jetzt das Skript m Hintergrund und das Programm starte, funktioniert das:

Code: Alles auswählen

./output.sh &
java -jar programm.jar
Wie funzt das mit Debianscreen?
Geht Debianexpect nur bei bestimmten Programmen???

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Bash - Eingabe auf UI vortäuschen

Beitrag von Cae » 15.04.2015 14:05:13

tr01 hat geschrieben:Wie funzt das mit Debianscreen?
Mach' die Augen auf und lies.

Oben habe ich bereits komplett funktionierende Beispiele fuer screen und die stdin-Methode gegeben, mit ftp als Platzhalter, da du sagtest, dass sich dein ominoeses Programm aehnlich verhalte.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Bash - Eingabe auf UI vortäuschen

Beitrag von rendegast » 15.04.2015 19:06:53

mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten