Cách tự động thực thi lệnh trong cửa sổ màn hình trong khi tạo phiên màn hình


0

Tôi đã cấu hình RC .screen của mình để tạo 10 cửa sổ trong khi tạo phiên màn hình như

 screen -t task1      0
 screen -t task2      1
 screen -t task3      2
 .
 .

Những gì tôi muốn là bất cứ khi nào tôi tạo một phiên màn hình, mọi cửa sổ nên ssh cho một máy. Tôi đã thử nhiều thứ như

 screen -t task1      0 "ssh -p 22 root@x.x.x.x"

 screen -t task1      0 bash "ssh -p 22 root@x.x.x.x"

Nhưng nó dường như không hoạt động.

Câu trả lời:


2

Vấn đề của bạn là trích dẫn.

screen -t task1 1 "ssh foo@bar"
screen -t task2 2 bash "ssh foo@bar"

Dòng đầu tiên sẽ cố gắng thực thi một lệnh gọi là " ssh foo@bar" thay vì chia nó thành các từ; thử mà không có dấu ngoặc kép.

Dòng thứ hai sẽ hướng dẫn bash thực thi tập lệnh có tên " ssh foo@bar" thay vì phân tích cú pháp dưới dạng lệnh; cần -ccờ:

screen -t task1 1 ssh foo@bar
screen -t task2 2 bash -c "ssh foo@bar"

Để thử chính xác những gì đang xảy ra, hãy dán các lệnh từ screenrc của bạn vào một phiên tương tác. Giả sử ký tự lệnh của bạn là mặc định, hãy thử ^a:lấy tương đương với một dòng lệnh màn hình.

^a:screen -t task1 2 "ssh foo@bar"

.. sẽ cung cấp cho bạn thông báo lỗi
Cannot exec 'ssh foo@bar': No such file or directory

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.