Tôi có một lệnh mà tôi chạy mỗi khi thiết bị đầu cuối mới được mở hoặc đăng nhập mới được thực hiện.
Chương trình này tạo đầu ra (màu) nên được định vị trước dấu nhắc lệnh. Có thể mất vài giây để chạy, điều đó sẽ ngăn tôi sử dụng thiết bị đầu cuối cho đến khi đó (trừ khi chạy ở chế độ nền).
Được cung cấp hơn zsh có một số cách nâng cao để vẽ lại thiết bị đầu cuối mà không ghi đè văn bản hiện có, tôi muốn biết làm thế nào tôi có thể chạy lệnh này theo cách mà tôi không phải đợi nó kết thúc trước khi tôi có thể sử dụng thiết bị đầu cuối nhưng điều đó một khi nó hoàn thành nó sẽ in đầu ra như thể nó không được làm nền ở vị trí đầu tiên.
Trong thực tế tôi muốn một cái gì đó có thể làm:
Command output:
... (running on background)
me@computer: somecommand
me@computer: someothercommand
và một khi lệnh kết thúc tôi sẽ nhận được:
Command output:
* Output foo
* Multiple lines bar
* and some yada
me@computer: somecommand
me@computer: someothercommand
Tôi đã thử đặt quá trình ở chế độ nền khi bắt đầu nhưng sau đó nó không hiển thị đầu ra rõ ràng. Tôi nhận được một cái gì đó như:
Command output:
[2] 32207
me@computer: somecommand
me@computer: someother * Output foo
* Multiple lines bar
* and some yada
[2] + done command
me@computer: someothercommand
Vì vậy, điều này là có thể? Nếu không với zsh thì có giải pháp nào ngoài đó có thể làm được không?
Bất kỳ con trỏ hoặc thông tin đều được chào đón.
zpty
? Tôi biết rằng bạn không thể có hai chương trình ghi vào cùng một thiết bị đầu cuối mà không có sự cạnh tranh nào với con trỏ. Câu hỏi của tôi xuất phát từ thực tế là zsh đã viết lại lời nhắc trong một số cấu hình. Rõ ràng chương trình này sẽ phải ghi vào một số bộ đệm trong bộ nhớ tạm thời sau đó sẽ được "in" đến vị trí cụ thể sau khi lệnh kết thúc. Tất cả sau này dưới sự kiểm soát của zsh.
screen
một kịch bản khởi động chia đôi màn hình và chạy trình chạy dài ở phần trên và dòng lệnh bình thường ở phần dưới.
zpty
: có lệnh chạy trong một thiết bị đầu cuối được tạo bởi zsh, với đầu ra của nó được chuyển tiếp đến thiết bị đầu cuối thực sự dưới sự kiểm soát của zsh.