Nếu bạn xem tiêu chuẩn ANSI ASCII , phần dưới của bộ ký tự (32 đầu tiên) được dành riêng "ký tự điều khiển" (đôi khi được gọi là "chuỗi thoát"). Đây là những thứ như nhân vật NUL, Life Feed, Vận chuyển trở lại, Tab, Chuông, v.v ... Đại đa số có thể được mô phỏng bằng cách nhấn Ctrlphím kết hợp với một phím khác.
Chuỗi thứ 27 (thập phân) hoặc \033
chuỗi bát phân hoặc 0x1b
chuỗi hex là chuỗi Escape. Chúng đều là các đại diện của trình tự điều khiển giống nhau. Các vỏ, ngôn ngữ và công cụ khác nhau đề cập đến trình tự này theo những cách khác nhau. CtrlTrình tự của nó là Ctrl- [, do đó đôi khi được đại diện là ^[
, ^
là một tay ngắn cho Ctrl.
Bạn có thể nhập các chuỗi ký tự điều khiển dưới dạng một chuỗi thô trên dòng lệnh của mình bằng cách tiến hành chúng với Ctrl- v. Ctrl- vđối với hầu hết các shell và chương trình dừng việc giải thích chuỗi khóa sau và thay vào đó chèn vào dạng thô của nó. Nếu bạn làm điều này bằng Escapephím hoặc Ctrl- vnó sẽ hiển thị trên hầu hết các shell như ^[
. Tuy nhiên, mặc dù trình tự này sẽ được diễn giải, nó sẽ không dễ dàng cắt và dán và có thể được giảm xuống thành một chuỗi ký tự không kiểm soát khi gặp phải các giao thức hoặc chương trình nhất định.
Để giải quyết vấn đề này để dễ sử dụng hơn, một số tiện ích nhất định biểu thị chuỗi "thô" bằng \033
(theo tham chiếu bát phân), tham chiếu hex \x1b
hoặc bằng tham chiếu ký tự đặc biệt \e
. Điều này cũng tương tự theo cách \t
được hiểu là một Tab- mà nhân tiện cũng có thể được nhập qua Ctrl- ihoặc \n
dưới dạng dòng mới hoặc Enterkhóa, cũng có thể được nhập qua Ctrl- m.
Vì vậy, khi Gilles nói:
27 = 033 = 0x1b = ^ [= \ e
Anh ta đang nói thập phân ASCII 27, bát phân 33, hex 1b, Ctrl- [và \e
tất cả đều bằng nhau, anh ta có nghĩa là tất cả đều đề cập đến cùng một điều (về mặt ngữ nghĩa).
Khi Demizey nói
^ [chỉ là một đại diện của ESCAPE và \ e được hiểu là một ký tự ESCAPE thực tế
Ông có nghĩa ngữ nghĩa, nhưng nếu bạn nhấn Ctrl- v Ctrl- [đây là chính xác giống như \e
, trình tự chèn thô sẽ rất có thể được điều trị theo cùng một cách, nhưng điều này không phải luôn luôn được bảo đảm, và vì vậy nó nên sử dụng lập trình di động hơn \e
hoặc 0x1b
hoặc \033
tùy trên ngôn ngữ / shell / tiện ích đang được sử dụng.