2012-05-15 37 views
6

Tôi có phiên màn hình đang chạy với một số cửa sổ. Tôi muốn đính kèm vào nó, tạo một cửa sổ màn hình mới bên trong nó và bắt đầu một trình bao trong cửa sổ mới đó.Đính kèm phiên 'màn hình' với việc tạo cửa sổ màn hình mới

Câu hỏi: Làm cách nào để thực hiện điều này từ dòng lệnh bên ngoài phiên màn hình?

Tôi đã thử rất nhiều, e. g. screen -x (nhưng nó gắn vào một trong các cửa sổ màn hình hiện có; nó không tạo ra một cửa sổ mới và cũng không bắt đầu một trình bao mới). Mọi gợi ý đều được chào đón.

Môi trường là Linux (Ubuntu 12.04).

+0

Có vẻ như không có cách nào tiêu chuẩn để làm việc đó. Bạn có thể tìm kiếm trong [danh sách gửi thư] (http://lists.gnu.org/archive/html/screen-users/) – tuxuday

+0

Tôi đã chấp nhận câu trả lời đó vì tôi đã tìm thấy một thứ ở đó, cảm ơn bạn! :) – Alfe

+0

@Alfe nếu bạn tìm thấy câu trả lời thích hợp, tự đăng nó. Bạn được phép chấp nhận câu trả lời của riêng bạn sau một thời gian nếu đó là câu trả lời đúng. Bên cạnh đó tôi tò mò: P – KurzedMetal

Trả lời

6

tôi tìm thấy một cái gì đó trên mailing list, cảm ơn bạn tuxuday :)

tôi đang làm nó bây giờ theo cách này:

#!/bin/bash 
screen -X screen -t NEWWINDOW # create new window (switches existing attached terminal) 
sleep 0.1 
screen -X other # switch existing attached terminal back to its old window 
sleep 0.1 
gnome-terminal -e 'screen -x -p NEWWINDOW' # connect to new window 

Tôi không chắc chắn về những ngủ, có lẽ họ aren' cần thiết trong mọi môi trường, nhưng tôi có thể đợi những giây đó dễ dàng.

My .bash_aliases đang thay đổi tiêu đề cửa sổ màn hình với độ trễ, vì vậy, NEWWINDOW khó xử sẽ không lâu (và do đó không cản trở các cuộc gọi đến tập lệnh này).

+2

Bí quyết tôi nhận được từ danh sách gửi thư là 'màn hình -X khác'. – Alfe

+1

hãy xem [mục blog] này (https://rohieb.wordpress.com/2010/07/30/gnu-screen-start-with-multiple-windows-and-commands/). Nó khuyến khích sử dụng một tập tin lệnh phiên (chỉ là một tập tin với tất cả các lệnh như 'screen',' select' và 'other') và chạy' screen -X source sessionfile' thay vì gọi 'screen -X' nhiều lần.Cách tiếp cận tốt – KurzedMetal

+0

Tôi đang gọi 'màn hình -X' chỉ hai lần ... nhưng nếu tập lệnh đó phát triển, cách tiếp cận tệp lệnh phiên là đáng để xem xét chắc chắn :) – Alfe

3

Thêm cửa sổ tách rời mới để sesion_name và chạy command

screen -S sesion_name -x -X screen bash -c 'command; exec bash' 
2

Để chọn một cửa sổ để tham gia, sử dụng tùy chọn -p. Cho + sẽ tạo một hình mới, do đó, lệnh của bạn chỉ đơn giản là:

screen -x session_name -p + 

Đây là tài liệu trên trang người đàn ông:

-pn ̲ u ̲ m ̲ b ̲ e ̲ r ̲ _o ̲ r ̲ _n ̲ a ̲ m ̲ e ̲ | ̲ - ̲ | ̲ = ̲ | ̲ + ̲

Preselect a window. This is useful when you want to reattach to a 
specific windor or you want to send a command via the "-X" option 
to a specific window. As with screen's select commant, "-" selects 
the blank window. As a special case for reattach, "=" brings up the 
windowlist on the blank window. 
+0

Tôi đã xem lại manpage của mình (phiên bản 4.00.03jw4) và chỉ tìm thấy '-p number_or_name' (không phải là' | - | = | + '). Sau đó, tôi nhìn vào một phiên bản hơi mới hơn (4.01.00devel) và tìm thấy dòng tóm tắt của bạn. Nhầm lẫn là văn bản bạn dán đến từ trang người lớn (không mô tả gì về '+') trong khi trang manpage mới hơn trong bài kiểm tra của tôi có thêm văn bản mô tả '+': '… trong khi dấu" + "sẽ tạo mới cửa sổ. Lệnh sẽ không được thực hiện nếu không tìm thấy cửa sổ được chỉ định.' Vì vậy, đây là một tùy chọn mới! Cảm ơn bạn đã chỉ ra điều này, tôi nghĩ nó giải quyết được vấn đề của tôi. – Alfe

Các vấn đề liên quan