Khi bạn đọc toàn bộ một dòng với các tùy chọn đơn giản read
(hoặc read -r
hoặc các tùy chọn khác không ảnh hưởng đến hành vi này), trình chỉnh sửa dòng được cung cấp kernel sẽ nhận ra Backspacekhóa để xóa một ký tự, cũng như một vài lệnh khác (bao gồm Returnđể hoàn thành đầu vào dòng và gửi nó). Các phím tắt có thể được cấu hình với stty
tiện ích. Thiết bị đầu cuối được cho là ở chế độ nấu khi trình chỉnh sửa dòng đang hoạt động. Ở chế độ thô, mỗi ký tự được gõ trên bàn phím sẽ được truyền đến ứng dụng ngay lập tức. Trong chế độ nấu, các ký tự được lưu trữ trong bộ đệm và chỉ các dòng hoàn chỉnh được truyền đến ứng dụng.
Để dừng đọc sau một số ký tự cố định để thực hiện read -n
, bash phải chuyển sang chế độ thô. Ở chế độ thô, thiết bị đầu cuối không thực hiện bất kỳ xử lý Backspacekhóa nào (tại thời điểm bạn nhấn Backspace, ký tự trước đã được gửi đến bash) và bash không thực hiện bất kỳ xử lý nào (có lẽ vì điều này mang lại tính linh hoạt cao hơn cho phép tập lệnh tự xử lý).
Bạn có thể vượt qua tùy chọn -e
để bật trình soạn thảo dòng riêng của bash (readline, đây là trình chỉnh sửa dòng thích hợp, không giống như trình soạn thảo cực kỳ thô sơ của kernel). Vì bash đang thực hiện phiên bản dòng, nó có thể ngừng đọc một khi nó có số lượng ký tự được yêu cầu.
read
đọc 'số lượng ký tự được nhập' vẫn chưa được trả lời.