Etwas in einen screen schreiben
Etwas in einen screen schreiben
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.
Re: Etwas in einen screen schreiben
Mit echo?
Code: Alles auswählen
echo bc hallo
Re: Etwas in einen screen schreiben
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 ?
Re: Etwas in einen screen schreiben
expect?
Damit kann man zumindest Benutzereingaben simulieren.
Damit kann man zumindest Benutzereingaben simulieren.
Zuletzt geändert von Liffi am 29.09.2016 19:17:40, insgesamt 1-mal geändert.
Re: Etwas in einen screen schreiben
was ? das war irgendne zeile einfach die in das script muss ... eig. ganz einfach , hmmm
Re: Etwas in einen screen schreiben
https://en.wikipedia.org/wiki/Expect
Aber vielleicht habe ich das Problem noch nicht genau verstanden .
Aber vielleicht habe ich das Problem noch nicht genau verstanden .
Re: Etwas in einen screen schreiben
das ist nicht das was ich damals genutzt hatte ^^ andere ideen ?
- Saxman
- Beiträge: 4233
- Registriert: 02.05.2005 21:53:52
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: localhost
Re: Etwas in einen screen schreiben
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.
Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.
Re: Etwas in einen screen schreiben
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.:
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.
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
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!
- heisenberg
- Beiträge: 4123
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Etwas in einen screen schreiben
Wenn Du das Recht dazu hast....
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">/proc/$$/fd/0
Und hier noch mal eine eigene wall-Implementation:
Code: Alles auswählen
echo "Hallo du Nase" | tee /dev/pts/* >/dev/null
Re: Etwas in einen screen schreiben
Das scheint zu sein was er sucht.heisenberg hat geschrieben:Wenn Du das Recht dazu hast....
Das geht für jeden Prozess. Natürlich will man nicht bei jedem Prozess in der Standardeingabe rummalen.Code: Alles auswählen
echo "Hallo du Nase">/proc/$$/fd/0
Use ed once in a while!
Re: Etwas in einen screen schreiben
Ich denke es geht um screen, Alternative wäre tmux und deren Funktionen.
Sitzung "test" erzeugen:
(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)
Im Beispiel wird im Screen "test" der Befehl "top" ausgeführt.
Sitzung "test" erzeugen:
Code: Alles auswählen
screen -S test
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'
Re: Etwas in einen screen schreiben
das meinte ich , danke !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'