Thực hiện một lệnh trong một thiết bị đầu cuối hiện có khác có thể được thực hiện, nhưng nó là xa tầm thường.
Đầu tiên, bạn có nhiều trình giả lập thiết bị đầu cuối mở. Những trình giả lập thiết bị đầu cuối đang chạy shell, có thể bash
nếu bạn đang dùng Linux. Với ps
lệnh bạn có thể tìm thấy id quá trình (PID) của tất cả các shell đang chạy trên máy của bạn. Câu hỏi lớn bây giờ là; cái nào để gửi lệnh đến?
Bạn đang tìm kiếm một shell thuộc về terminal mà bạn muốn hiển thị lệnh trên. Chạy lệnh echo $$
trên thiết bị đầu cuối đang được đề cập sẽ trả về PID của shell đang chạy trên thiết bị đầu cuối đó.
Sử dụng /proc
hệ thống tập tin bạn có thể xác định đầu vào tiêu chuẩn của shell /proc/<PID>/fd/0
, mà là một pty
thiết bị.
Tiếp theo bạn muốn gửi một lệnh đến thiết bị đầu cuối đó. Điều này phải được thực hiện bằng cách sử dụng TIOCSTI
ioctl
lệnh trên pty của shell. Bạn có thể tìm mã nguồn C để làm điều đó đây . Biên dịch chương trình đó như ví dụ: ttyecho
và đặt nó trong một thư mục trong $ PATH của bạn.
Bây giờ các mảnh đã được đặt, và bạn có thể gọi ttyecho
lệnh với tên của pty shell và lệnh python <filename>
.
Làm tất cả điều này trong vimscript được để lại như một bài tập cho người đọc. :-)