Jawaban:
Layar memasok beberapa variabel lingkungan (dari screen
(1) halaman manual):
STY Alternate socket name.
WINDOW Window number of a window (at creation time).
"Saat pembuatan" berarti bahwa jika Anda memberi nomor baru jendela (menggunakan number
perintah layar ), shell tidak akan diberi tahu tentang perubahan dan $ WINDOW masih akan sama dengan nomor jendela pertama.
Anda dapat menggunakan sesuatu seperti:
PS1='\u@\h(${STY}:${WINDOW}):\w$ '
screen -xr 2466 -X windows
.
Ctrl-a A
?
screen
telah dikompilasi dengan opsi -Q
(permintaan), maka Anda dapat menjalankan beberapa perintah, seperti title
dan windows
dan memiliki tampilan data untuk stdout, bagaimanapun, tanpa baris baru.
Saya selalu menggunakan nama sesi layar yang tepat. Kemudian saya dapat menambahkan layar STY env var, dengan id numerik dilucuti (terima kasih dimo414), ke PS1. Saya tidak menghiasnya dengan kurung kurawal atau apa pun karena saya tidak selalu dalam satu sesi. Contoh sederhana:
PS1='\u@\h ${STY#[0-9]*.} \w$ '
Saya menggunakan ini:
(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)
menghapus nomor proses dari ${STY}
memasukkan nomor jendela (seperti yang disebutkan "pada waktu pembuatan")
termasuk judul jendela (seperti yang dikembalikan dari screen -Q title
)
catatan:
screen -Q
menunggu keystroke kembali${STY#[0-9]*.}
menghindari perlu melalui pipa sed
.