Layar GNU: Tidak bisakah perintah barang kecuali layar terpasang?

10

Saya memiliki skrip berikut

screen -d -m -S $1                #start screen minimized
screen -S $1 -X stuff "$beast     
"                                 #stuff commands

kecuali saya pasang layar terlebih dahulu sepertinya pengaruh barang tidak akan melakukan apa-apa? Mengapa ini dan bagaimana saya bisa memodifikasi skrip ini sehingga saya tidak perlu melampirkan layar?

dukevin
sumber

Jawaban:

14

Saat Anda memulai sesi Layar dalam mode terlepas ( screen -d -m), tidak ada jendela yang dipilih, jadi input yang dikirim kemudian screen -X stuffhilang begitu saja. Anda harus secara eksplisit menentukan bahwa Anda ingin mengirim penekanan tombol ke jendela 0 ( -p 0). Ini adalah ide yang bagus, jika Anda kebetulan membuat windows lain di sesi Layar itu untuk alasan apa pun.

screen -S "$1" -p 0 -X stuff "$beast$(printf \\r)"

( printf \\runtuk benar-benar meniru Returnkunci; banyak tetapi tidak semua program menerima baris baru ( \n).)

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Terima kasih! ini bekerja dengan sempurna. Maaf semuanya berada di luar topik
dukevin
tidak bekerja untuk saya.
Tanner Strunk
2

Baru-baru ini muncul ketika mencoba untuk menjawab pertanyaan di unix.stackexchange.com .

Ringkasannya adalah bahwa layar tidak memiliki jendela pilihan default kecuali jika Anda melakukan penyesuaian, tetapi Gilles menunjukkan kepada kami bagaimana Anda dapat memaksa seseorang untuk dipilih dengan menambahkan argumen -p 0ke perintah layar Anda.

Secara pribadi saya sarankan beralih ke tmux. Inilah cara Anda melakukan porta perintah layar agar berfungsi di tmux:

tmux new-session -d -n $1
tmux send-keys -t $1 "$beast\n"
Caleb
sumber