Значение \ r в системах Linux

Я смотрю на некоторый специфичный для Linux код, который выводит подобные:

\r\x1b[J>

к стандартному.

Я это понимаю <ESC>[J представляет удаление содержимого экрана из текущей строки вниз, но что здесь делает?

Я также вижу следующее:

>user_input\n\r>

где user_input — текст, введенный пользователем. Но какова цель здесь?

1

Решение

Характер '\r' является возврат каретки. Возвращает курсор в начало строки.

Часто используется в интернет-протоколах совместно с символом новой строки ('\n'), чтобы отметить конец строки (большинство стандартов определяет его как "\r\n", но некоторые допускают неправильное решение). В Windows пара перевода строки с возвратом каретки также используется в качестве конца строки. В старой операционной системе Macintosh (до OSX) в качестве конца строки вместо перевода строки использовался один возврат каретки, в то время как в UNIX и UNIX-подобных системах (например, Linux и OSX) используется один перевод строки.

6

Другие решения

Управляющий персонаж \r перемещает курсор (текстовый курсор.k.a) в крайнее левое положение в текущей строке.

1

От Википедия

Системы на основе ASCII или совместимого набора символов используют либо LF
(Перевод строки, ‘\ n’, 0x0A, 10 в десятичном виде) или CR (возврат каретки, ‘\ r’,
0x0D, 13 в десятичном виде) по отдельности или CR, за которым следует LF (CR + LF,
‘\ r \ n’, 0x0D0A). Эти символы основаны на командах принтера:
перевод строки показал, что одна строка бумаги должна выходить из
принтер, таким образом, дал указание принтеру продвинуть бумагу на одну строку, и
возврат каретки указывает, что каретка принтера должна вернуться в
начало текущей строки. Некоторые редкие системы, такие как QNX
до версии 4 использовался ASCII RS (разделитель записей, 0x1E, 30 в
десятичный знак) как символ новой строки.

1

FWIW — это часть управления кареткой — от управляющих слов мэйнфрейма до управления кареткой Windows / UNIX / FORTRAN. Управление кареткой может быть реализовано на уровне языка, как это делает FORTRAN, или в масштабе всей системы, как это делают UNIX и Windows.

\n возникла из-за ограничений ранних пользовательских интерфейсов PDP — терминала tty. Пойди в музей, если хочешь увидеть.

Очень простой момент: разница между \ n \ r объясняется выше. Но все эти объяснения действительно говорят о том, что управление кареткой зависит от реализации.

[J является частью escape-последовательностей ANSI и того, что они делают на «терминале, соответствующем стандартам».
DOS имел обыкновение иметь ANSI.SYS, чтобы обеспечить: цвета, подчеркивание, полужирный, используя эти последовательности.

http://ascii-table.com/ansi-escape-sequences.php

Хорошая ссылка на вопрос: what does some odd looking string in the output do?

0

\r возврат каретки так же \n перевод строки.

0
По вопросам рекламы [email protected]