Câu trả lời:
Màn hình cung cấp một số biến môi trường (từ screen
(1) manpage):
STY Alternate socket name.
WINDOW Window number of a window (at creation time).
"Tại thời điểm tạo" có nghĩa là nếu bạn đánh số lại một cửa sổ (sử dụng number
lệnh của màn hình ), trình bao sẽ không được thông báo về sự thay đổi và $ WINDOW sẽ vẫn giống như số cửa sổ đầu tiên.
Bạn có thể sử dụng một cái gì đó như:
PS1='\u@\h(${STY}:${WINDOW}):\w$ '
screen -xr 2466 -X windows
.
Ctrl-a A
không?
screen
đã được biên soạn với các -Q
tùy chọn (query), sau đó bạn có thể chạy một số lệnh, chẳng hạn như title
và windows
và có màn hình hiển thị dữ liệu đến thiết bị xuất chuẩn, tuy nhiên, không có một ký tự dòng mới.
Tôi luôn luôn sử dụng tên phiên màn hình chính xác. Sau đó, tôi có thể thêm var STY env var của màn hình, với id số bị loại bỏ (cảm ơn dimo414), vào PS1. Tôi không trang trí nó bằng niềng răng xoăn hay bất cứ thứ gì vì không phải lúc nào tôi cũng ở trong một phiên. Ví dụ đơn giản:
PS1='\u@\h ${STY#[0-9]*.} \w$ '
Tôi sử dụng cái này:
(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)
xóa số quy trình khỏi ${STY}
bao gồm số cửa sổ (như đã đề cập "tại thời điểm tạo")
bao gồm tiêu đề cửa sổ (như được trả về từ screen -Q title
)
ghi chú:
screen -Q
chờ đợi một lần nhấn phím trở lại${STY#[0-9]*.}
tránh cần phải thông qua đường ống sed
.