В коде GNU я видел \e[s
и \e[u
последовательности символов. Что они означают?
Как это помогает перемещать курсор на консоли?Что такое « e [s» и « e [u» последовательности символов?
ответ
Символьные последовательности escape-символов \e[s
и \e[u
обычно относятся к печатным формам управляющих последовательностей сохранения/восстановления курсора (положения). Они вернулись (по крайней мере) до ansi.sys
из MS-DOS. Несколько типов терминалов (включая xterm) поддерживают эти управляющие последовательности.
\e
означает ASCII побег персонаж. В termcap или terminfo это будет верхний регистр \E
(все тот же код 27).
Некоторые реализации echo
(независимо от того, является ли исполняемая или встроенная командная оболочка) интерпретировать \e
как символ escape. В зависимости от версии вы можете видеть, что это поддерживается в GNU coreutils echo
или bash
(который может использоваться и использоваться на различных платформах, включая Windows). Соответствующий стандарт для echo
использует \033
. Вероятно, \e
был выбран в нижнем регистре для соответствия стандарту побегов, таких как \n
и \t
.