Câu hỏi đó thực sự là một số câu hỏi và "ký tự điều khiển" chỉ giải quyết một phần nhỏ của câu hỏi, ví dụ: thanh tiến trình cho curl
. Tổng quát hơn, đây là những tính năng phổ biến của thiết bị đầu cuối (và trình giả lập thiết bị đầu cuối).
Hầu hết các tính năng phổ biến này được tiêu chuẩn hóa trong ECMA-48: Chức năng điều khiển cho các bộ ký tự được mã hóa . Tuy nhiên, các tính năng khác thì không . Chúng được xác định theo thực hiện.
ECMA-48 đề cập đến các chức năng điều khiển . Điều đó bao gồm các ký tự điều khiển và các chuỗi điều khiển (thường được gọi là các chuỗi thoát, các chuỗi ANSI, v.v.).
Một số ký tự điều khiển được sử dụng cho các hoạt động đơn giản , ví dụ:
- di chuyển con trỏ đến cột trước đó trên cùng một hàng
- di chuyển con trỏ đến cột đầu tiên trên cùng một hàng
- di chuyển con trỏ đến điểm dừng tiếp theo trên cùng một hàng
- di chuyển con trỏ đến hàng tiếp theo (và cuộn màn hình nếu ở hàng cuối cùng)
Thanh tiến trình curl
được xây dựng bằng các thao tác đơn giản này. Nhưng nhân vật điều khiển chỉ có thể làm rất nhiều, không hơn. Trình tự điều khiển làm nhiều hơn, ví dụ,
- di chuyển con trỏ đến bất kỳ hàng / cột nào trên màn hình
- di chuyển con trỏ đến bất kỳ hàng nào trong cùng một cột trên màn hình
- di chuyển con trỏ đến bất kỳ cột nào trong cùng một hàng trên màn hình
- đặt các điểm dừng tab tại bất kỳ cột nào trên màn hình
- di chuyển con trỏ đến dòng trước
- làm cho màn hình cuộn lên hoặc xuống mà không di chuyển con trỏ
Quá nhiều cho sự tương đồng giữa đơn giản / phức tạp. Trình tự điều khiển cũng được sử dụng để thay đổi màu văn bản và nền, xóa văn bản khỏi màn hình, hiển thị văn bản trong video đảo ngược (hoặc in đậm, gạch chân, nhấp nháy).
Các chương trình vẽ chuỗi điều khiển sử dụng thanh tiến trình video đảo ngược (hoặc được tô màu) .
Mặc dù các chuỗi điều khiển có thể làm nhiều hơn, nhưng chúng chỉ có thể làm những việc cụ thể. Đặt chúng lại với nhau để làm cho trình soạn thảo văn bản, màn hình cài đặt (và các chương trình vẽ các thanh tiến trình được tô màu) trở nên phức tạp. Một số trong đó được làm đơn giản hơn bằng cách sử dụng các thư viện biết về những điều này. Ban đầu, chúng tôi có termcap (và cơ sở dữ liệu của vài trăm loại thiết bị đầu cuối), được mở rộng thành terminfo (và cơ sở dữ liệu của khoảng một nghìn loại thiết bị đầu cuối).
Ngay cả với tiêu chuẩn hóa, có hàng tá mô tả thiết bị đầu cuối mà bạn có thể sử dụng . Vì vậy, chúng tôi tiếp tục sử dụng các thư viện cho tất cả trừ những ứng dụng tầm thường nhất. Một là ncurses ("new-curses"), một cái khác là tiếng lóng (về mặt kỹ thuật là "S-Lang").
Đọc thêm:
ncurses
.