Phương pháp di động nhất để khởi chạy một trình giả lập thiết bị đầu cuối là gì?


14

Nói rằng tôi cần phải viết một kịch bản sẽ khởi chạy một thiết bị đầu cuối và thực thi một lệnh và tôi cần điều đó để làm việc trên các hệ thống khác nhau. Làm thế nào tôi có thể làm điều đó một cách an toàn và di động?

xtermluôn luôn được cài đặt? Tôi giả sử rằng bất kỳ * nix nào với GUI phải có một số trình giả lập đầu cuối. Làm thế nào tôi có thể nhận được nó? Các hệ thống Debian x-terminal-emulator nhưng điều đó, rõ ràng, thậm chí không hoạt động trong Red Hat, chứ chưa nói gì đến các phiên bản không phải là Linux *.


Điều này có thể thực hiện được vớiexpect
Red Cricket

@RedCricket expect? Làm sao? Bằng cách yêu cầu người dùng gõ vào thiết bị đầu cuối của họ?
terdon

.. Tò mò, tại sao bạn cần phải làm điều này? Có lẽ chúng ta có thể đề xuất một giải pháp thay thế.
dùng606723

@ user606723 tò mò cơ bản, tự hỏi liệu có một thứ như trình giả lập thiết bị đầu cuối mặc định được xác định bởi POSIX hoặc opendesktop (có vẻ như câu trả lời là không). Đã đến như một phản ứng cho câu hỏi SU này .
terdon

Bạn có thực sự cần phải khởi chạy một trình giả lập thiết bị đầu cuối, hoặc bạn thực sự chỉ cần lấy một trình bao. Đó là một nhu cầu hoàn toàn khác.
Lie Ryan

Câu trả lời:


10

Tôi không nghĩ bạn có thể. xtermkhông cần phải được cài đặt ở mọi nơi và thực sự có lẽ không phải mặc định. Đặc biệt là khi một môi trường máy tính để bàn được sử dụng cung cấp thiết bị đầu cuối của riêng nó.

Tôi nghĩ rằng đặt cược tốt nhất của bạn có lẽ là để kiểm tra sự tồn tại của một vài thiết bị đầu cuối khác nhau (ví dụ xdg-terminal, x-terminal-emulator, gnome-terminal, konsole, xterm). Và có thể làm việc để có được xdg-terminal thực sự được thêm vào các tiêu chuẩn FreeDesktop.org.

Sau đó, bạn sẽ thấy rằng các thiết bị đầu cuối khác nhau có các cách khác nhau để chạy các lệnh và đôi khi cả các phiên bản khác nhau của cùng một thiết bị đầu cuối ... ví dụ: xem Lỗi Debian # 648271 .

Có lẽ bạn cũng nên cung cấp cho quản trị viên / người dùng cách đặt lệnh tùy chỉnh. Nó chắc chắn sẽ cần thiết.


Vâng, điều này đã được nhắc nhở bởi một câu hỏi trên SU và tôi đã hy vọng sẽ có một cách đơn giản hơn là một loạt các casetuyên bố.
terdon

1
@terdon Tôi đoán cách đơn giản sẽ là liệt kê một thiết bị đầu cuối ánh sáng khá phụ thuộc như một yêu cầu cho tập lệnh, sau đó chỉ cần sử dụng nó.
derobert

Làm thế nào về cửa sổ thiết bị đầu cuối đã xuất hiện khi tôi chạy xinit? Đã không được thực hiện trong nhiều năm nhưng điều đó được sử dụng để tải một máy chủ X đơn giản với xtermcửa sổ trống (?) Từ đó bạn có thể bắt đầu phiên của mình. Điều đó không có nghĩa là một số trình giả lập thiết bị đầu cuối được cài đặt với X?
terdon

@terdon trước đây, nhưng sau đó người xorg chia X thành một gói. (Thiết bị đầu cuối đó có lẽ là xterm). Nhưng kiểm tra nhanh cho thấy tôi có thể xóa xterm khỏi hệ thống của mình nếu tôi muốn.
derobert

@terdon Đó là xterm, trình giả lập thiết bị đầu cuối truyền thống mặc định của X. Nhưng nó có thể không phải luôn luôn được cài đặt. IIRC cài đặt Ubuntu mặc định chỉ bao gồm gnome-terminal, không phải xterm (và đối với Kubfox, nó sẽ là konsole, v.v.).
Gilles 'SO- ngừng trở nên xấu xa'

3

Vâng, bạn cần phải sử dụng một trình bao bọc. Có một cái tốt đi kèm với i3 WM. Giải thích tại đây: http://build.i3wm.org/docs/i3-sensible-terminal.html

Chỉ cần sao chép hàm này vào hàm shell trong tập lệnh của bạn: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal


Đó là một khởi đầu tốt (+1) nhưng chỉ kiểm tra số lượng thiết bị đầu cuối hạn chế (và sử dụng whichđó là một ý tưởng tồi )
terdon
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.