Etwas in einen screen schreiben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Etwas in einen screen schreiben

Beitrag von OldGod78 » 29.09.2016 18:18:03

hallo, ich habe es mal gewusst - wie mache ich nochmal dass bei meinem sh-script etwas in die konsole eines screens geschrieben wird ? z.b. "bc hallo" und das noch abschicken , also der enter-druck.

Liffi
Beiträge: 2306
Registriert: 02.10.2004 01:33:05

Re: Etwas in einen screen schreiben

Beitrag von Liffi » 29.09.2016 18:53:29

Mit echo?

Code: Alles auswählen

echo bc hallo

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: Etwas in einen screen schreiben

Beitrag von OldGod78 » 29.09.2016 18:54:25

nein ... ich meine ich habe einen screen offen von einem bot , wenn ich das script ausführe wird in diesen screen etwas geschrieben , wie wenn ich es selbst dort eintippe , verständlich ?

Liffi
Beiträge: 2306
Registriert: 02.10.2004 01:33:05

Re: Etwas in einen screen schreiben

Beitrag von Liffi » 29.09.2016 19:16:48

expect?
Damit kann man zumindest Benutzereingaben simulieren.
Zuletzt geändert von Liffi am 29.09.2016 19:17:40, insgesamt 1-mal geändert.

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: Etwas in einen screen schreiben

Beitrag von OldGod78 » 29.09.2016 19:17:02

was ? das war irgendne zeile einfach die in das script muss ... eig. ganz einfach , hmmm

Liffi
Beiträge: 2306
Registriert: 02.10.2004 01:33:05

Re: Etwas in einen screen schreiben

Beitrag von Liffi » 29.09.2016 19:26:12

https://en.wikipedia.org/wiki/Expect

Aber vielleicht habe ich das Problem noch nicht genau verstanden :-).

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: Etwas in einen screen schreiben

Beitrag von OldGod78 » 29.09.2016 19:47:13

das ist nicht das was ich damals genutzt hatte ^^ andere ideen ?

Benutzeravatar
Saxman
Beiträge: 4215
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Etwas in einen screen schreiben

Beitrag von Saxman » 29.09.2016 20:00:10

Nicht getestet aber wie schaut es mit den unix Klassikern wall und write aus?
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Etwas in einen screen schreiben

Beitrag von Meillo » 29.09.2016 20:03:22

Also so schreibst du etwas in die Konsole:

1) In der Zielkonsole mit `tty' ausgeben lassen, um welches Device es sich handelt. Es wird etwas wie /dev/pts/7 sein.
2) Von einer beliebigen anderen Stelle etwas dorthin schreiben, z.B.:

Code: Alles auswählen

echo foo >/dev/pts/7
Nun ist in der Zielkonsole ``foo'' sichtbar.


Falls du aber nicht dort etwas anzeigen willst, sondern in die dort laufende Shell etwas eingeben willst, dann solltest du eher mal nach Screen-Multiuser suchen.


Btw: write(1) macht effektiv nicht viel anderes als das was ich hier beschrieben habe.
Use ed once in a while!

Benutzeravatar
heisenberg
Beiträge: 3473
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Etwas in einen screen schreiben

Beitrag von heisenberg » 29.09.2016 21:34:24

Wenn Du das Recht dazu hast....

Code: Alles auswählen

echo "Hallo du Nase">/proc/$$/fd/0
Das geht für jeden Prozess. Natürlich will man nicht bei jedem Prozess in der Standardeingabe rummalen.

Und hier noch mal eine eigene wall-Implementation:

Code: Alles auswählen

echo "Hallo du Nase" | tee /dev/pts/* >/dev/null
... unterhält sich hier gelegentlich mangels wunschgemäßer Gesprächspartner mal mit sich selbst.

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Etwas in einen screen schreiben

Beitrag von Meillo » 29.09.2016 22:15:04

heisenberg hat geschrieben:Wenn Du das Recht dazu hast....

Code: Alles auswählen

echo "Hallo du Nase">/proc/$$/fd/0
Das geht für jeden Prozess. Natürlich will man nicht bei jedem Prozess in der Standardeingabe rummalen.
Das scheint zu sein was er sucht.
Use ed once in a while!

uname
Beiträge: 12046
Registriert: 03.06.2008 09:33:02

Re: Etwas in einen screen schreiben

Beitrag von uname » 30.09.2016 09:18:28

Ich denke es geht um Debianscreen, Alternative wäre Debiantmux und deren Funktionen.

Sitzung "test" erzeugen:

Code: Alles auswählen

screen -S test
(danach detachen, nicht detachen oder gleich detached starten, vollkommen egal)

Folgenden Befehl von außerhalb senden. ^M ist das Enter (CTRL v Enter für die Eingabe dieses Zeichens)

Code: Alles auswählen

screen -S test -X stuff 'top^M'
Im Beispiel wird im Screen "test" der Befehl "top" ausgeführt.

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: Etwas in einen screen schreiben

Beitrag von OldGod78 » 30.09.2016 15:22:38

uname hat geschrieben:Folgenden Befehl von außerhalb senden. ^M ist das Enter (CTRL v Enter für die Eingabe dieses Zeichens)

Code: Alles auswählen

screen -S test -X stuff 'top^M'
das meinte ich , danke !

Antworten