Truyền số cửa sổ màn hình GNU hiện tại cho lệnh backtick


2

Có cách nào để gửi / chuyển số cửa sổ hiện tại cho lệnh backtick trong màn hình GNU không? Hoặc tôi sẽ phải sử dụng một bộ ghép kênh đầu cuối khác nhau?

Cảm ơn bạn.

Biên tập:

Đây là backtick của tôi:

backtick 0 2 2 $HOME/bin/status/status

Bên trong dòng "chuỗi cứng" của tôi, backtick được chèn vào:

hardstatus string "... %{=b dw}[ %{-b dc}%0`%{=b dw} ]"

Bên trong tập lệnh trạng thái (chính xác hơn là tập lệnh được chạy bởi $HOME/bin/status/status) Tôi muốn biết cửa sổ nào hiện đang được hiển thị.


Xin hãy giải thích. Bạn muốn làm gì với số màn hình?
Doug Harris

Câu trả lời:


2

Từ phần môi trường của trang man màn hình, WINDOWbiến môi trường chứa "Số cửa sổ của cửa sổ (tại thời điểm tạo)." Lưu ý rằng điều này sẽ không khả dụng nếu bạn su -ở trong cửa sổ (hoặc nếu không sẽ xóa sạch môi trường của người dùng của bạn).


Nếu bạn đang cố gắng thêm một chỉ báo trực quan của cửa sổ hiện tại bằng cách chèn số cửa sổ vào dấu nhắc shell, bạn có biết rằng dòng trạng thái ở dưới cùng của màn hình có thể cho bạn thấy điều này không?

Đây là bit từ tệp .screenrc của tôi, cấu hình này cho tôi:

# An alternative hardstatus to display a bar at the bottom listing the
# window names and highlighting the current window name in blue. 
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %l %m/%d %c "

Phần thoát chuỗi của trang man đi sâu vào chi tiết hơn về những gì bạn có thể đưa vào dòng trạng thái.


Cảm ơn các gợi ý về môi trường. Thật không may, WINDOW chỉ được đặt cho thiết bị đầu cuối tương ứng, tập lệnh backtick có môi trường ban đầu. Truyền% n làm đối số trong dòng định nghĩa backtick cũng không hoạt động.
exic

Bạn có thể giải thích những gì bạn đang cố gắng thực hiện?
Doug Harris

Tôi muốn làm một cái gì đó như thế này: nếu hiện tại màn hình gió là 1 thì xóa một số tệp nhật ký.
exic

1
Một cái gì đó về điều đó đánh tôi là kỳ lạ. Tôi xem screennhư một công cụ trình bày đơn thuần - không được tích hợp chặt chẽ với chức năng của hệ thống. Bằng cách xóa một tệp nhật ký dựa trên màn hình mà bạn hiện đang xem, bạn đang kết hợp cả hai. Nếu bạn đang ghi nhật ký đầu ra của một lệnh đang chạy trong màn hình, bạn có thể chuyển hướng đầu ra sang một tệp (tùy chọn sử dụng teeđể bạn cũng có thể xem) hoặc bạn có thể sử dụng loglệnh của màn hình để chụp đầu ra.
Doug Harris
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.