2011-01-18 3 views
8

Attualmente sto usando uno script per generare un demone:C'è un modo più semplice per inviare il tasto ENTER nella schermata GNU?

screen -r user -X stuff "spawn daemon" 
screen -r user -X eval "stuff \015" 

C'è un modo più semplice per inviare la chiave ("\ 015") entrano, o di fatto un modo migliore di fare questo? (Devo usare lo schermo.)

Suppongo che poiché non sto collegando lo schermo, non sarò in grado di ottenere il risultato/output del comando "spawn daemon". È corretto?

risposta

10

faccio sempre così:

screen -r user -X stuff "spawn daemon^M" 

dove ho la^M colpendo Ctrl-V, quindi inserire, sulla riga di comando. In bash e vim, è possibile utilizzare ctrl-v per sfuggire a caratteri come Enter che altrimenti avrebbero un effetto speciale.

4

Per quanto riguarda la seconda domanda, è possibile abilitare la registrazione e leggere dal file di registro.

+0

Grazie. Me ne ero dimenticato. – Dijkstra

1

Invio CR:

echo -e "Some text\015" > /dev/pts/1 

Invio LF:

echo -e "Some text\012" > /dev/pts/1 

sostituire il numero di percorso del dispositivo con il numero di schermo effettivo.

2

Questa soluzione funziona nel mio caso:

screen -r user -X stuff "spawn daemon$(printf \\r)" 
+0

Abbastanza elegante. Soprattutto perché è possibile memorizzare questo carattere in una variabile 'n =" $ (printf \\ r) "' e in seguito usarlo scrivendo solo '$ n' –