Hành vi thụt đầu dòng bất ngờ khi tôi đặt thiết bị đầu cuối sang chế độ thô - tại sao điều này xảy ra?


27

Dựa trên những gì tôi đã đọc, khi một thiết bị đầu cuối ở chế độ thô, các ký tự không được xử lý bởi trình điều khiển thiết bị đầu cuối, nhưng được gửi thẳng qua.

Tôi đặt thiết bị đầu cuối ở chế độ thô bằng cách sử dụng lệnh stty rawvà tôi nhận thấy rằng đầu ra được thụt vào bên phải mỗi lần cho đến khi không còn chỗ trống. Đó là thứ tôi nghĩ:

nhập mô tả hình ảnh ở đây

Tại sao hành vi này xảy ra?!

Câu trả lời:


45

Một trong các sttycài đặt ( onlcr) yêu cầu trình điều khiển đầu cuối chuyển đổi dòng mới (thực tế là nguồn cấp dữ liệu ASCII) thành nguồn cấp dữ liệu trở lại cộng với nguồn cấp dữ liệu.

Các hệ thống giống như Unix chỉ cần viết một dòng mới đến các dòng kết thúc, cho phép trình điều khiển đầu cuối thực hiện đúng (chuyển đổi dòng mới thành vận chuyển trở lại cộng với nguồn cấp dữ liệu).

Vận chuyển trở lại "đi bên trái" và dòng cấp dữ liệu "đi xuống".

Khi bạn đặt thiết bị đầu cuối thành chế độ thô, dòng mới sẽ không còn được chuyển đổi thành vận chuyển trở lại cộng với nguồn cấp dữ liệu. Không có lợi nhuận vận chuyển, bạn sẽ có được hiệu ứng cầu thang đó .


và để có cái nhìn sâu hơn, bạn có thể xem @ stéphane-chazelas bài đăng thực sự tốt: unix.stackexchange.com/questions/151916/ , cho thấy rất nhiều điều thú vị về chuyển đổi thiết bị đầu cuối (và tác dụng phụ của chúng) . Tóm lại: chỉ "ssh -t" để sử dụng các lệnh tương tác, nhưng trong tập lệnh của bạn chỉ sử dụng ssh nếu bạn muốn lấy chính xác lệnh được tạo (ví dụ: các tệp tar được tạo ở một bên của ssh và đọc / ghi mặt khác: không thêm "-t" hoặc nó có thể (... sẽ?) làm rối tung các nhị phân của bạn)
Olivier Dulac
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.