2016-04-10 3 views
3

Ich versuche etwas zu tun, das sich als überraschend schwierig erweist. Ich möchte eine Bildschirmsitzung ohne anhängen (da dies schließlich ein Startskript wird), dann senden Sie einen Bash-Befehl an die Sitzung.Erstellen Sie einen Bildschirm, der freistehend ist, senden Sie ihm einen Befehl

Ich habe versucht, einfach echo Hello in einer neu erstellten Sitzung. Die Bildschirmsitzung ist in Ordnung, aber das Echo passiert nie. In Anbetracht des folgende Beispiel würde ich erwarten, endlich auf einen Bildschirm zu befestigen, die „Hallo“ hat auf es Konsole:

screen -mdS "Test" # Create a screen session, do not attach to it 
screen -ls # Confirm that the Test screen session exists 
screen -S "Test" -X "echo Hello^M" # Send a command through 
screen -R # Reconnect - notice the command didn't execute 

Aber es gibt nichts in der Sitzung überhaupt - die echo wurde nicht ausgeführt. Irgendwelche Hinweise werden sehr geschätzt ?!

+0

Am zweiten Gedanken, ich rechne diese Frage vom Thema hier und gehört zu http://unix.stackexchange.com –

Antwort

3

Der korrekte Aufruf ist

screen -S "Test" -X stuff 'echo Hello\r'

+0

Oh, das funktioniert super! All diese Beispiele, die "Zeug" sagten, waren in ihren Proben nur das Äquivalent von "Blah" und nahmen es nicht wörtlich: -} Danke! – ledneb

+0

Es ist ein Verb. "Stopf es an". –

0

Versuchen:

screen -S "Test" -X stuff 'echo "Hello"'`echo -ne '\015'`

stuff ist ein Bildschirm-Befehl: screen docs for stuff command

`echo -ne '\015'` Mittel Enter Taste

ich diese Lösung gefunden: link

Verwandte Themen