File log yang dihasilkan secara dinamis di screenrc ditampilkan dalam hardstatus

8

Saya ingin menggunakan kombinasi tanggal dan waktu saat startup sebagai nama file untuk logfile layar GNU. Di screenrc, jika saya taruh

logfile '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

Saya mendapatkan file yang dihasilkan secara dinamis, misalnya

screen_nanna13_06062012_08:03-bash.0

Sekarang saya ingin layar untuk menampilkan nama file ini di bar hardstatus. Saya tidak bisa menggunakan

hardstatus string '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

karena penampung diperbarui setiap kali waktu berubah.

Solusi yang bisa saya buat melibatkan kode bash yang dijalankan sebelum layar-startup tetapi itu tidak baik karena layar-jendela terpisah seharusnya mendapatkan logfile dinamis mereka sendiri.

Apakah ada mekanisme substitusi variabel di layar?

ini
sumber

Jawaban:

1

Saya menemukan solusi menggunakan backtickperintah layar :

backtick 1 0 0 date +%d%b%Y_%k:%M
logfile '~/log/%H_%1`-%t.%n'
hardstatus string '~/log/%H_%1`-%t.%n'

menggunakan perintah tanggal UNIX untuk memuat tanggal / waktu saat ini ke dalam variabel% 1`. Satu-satunya masalah adalah, bahwa tanggal tidak berubah dalam nama file log kalau-kalau jendela baru dibuat kemudian selama sesi (tapi bagi saya, itu bahkan fitur karena memungkinkan untuk identifikasi yang lebih baik dari file log yang sesuai).

ini
sumber