Как очистить строку в Mac OS Terminal? - PullRequest
0 голосов
/ 11 октября 2019

http://ascii -table.com / ansi-escape-sequence-vt-100.php

В приведенной выше таблице показано, что Esc[2K очищает строку.

Но в Mac Terminal я не вижу, чтобы линия была чистой.

$ echo abc$'\e[2k'
abc

Переменная TERM следующая:

$ declare -p TERM
declare -x TERM="xterm-256color"

Кто-нибудь знает, как очистить линию? (Если возможно, он должен работать и на других терминалах, кроме Mac Terminal.) Спасибо.

1 Ответ

1 голос
/ 11 октября 2019

Я бы просто поспорил, что это незначительная опечатка, потому что escape-последовательность, связанная с очисткой строки: Esc[2K с верхним регистром K, а не k

echo -e abc$'\e[2K'

должна работать так же, какожидается. Обратите внимание, что echo -e и экранирование в стиле ANSI C ($'...') являются bash специфичными для оболочки и не совместимыми с POSIX. Вы всегда можете использовать printf(), который также поддерживает escape-последовательности

printf abc'\e[2K'

Также обозначение escape-символа \e может не поддерживаться во всех версиях echo, но толькоbash встроенный. Вы можете использовать шестнадцатеричный эквивалент \e как \x1B или восьмеричный эквивалент \033.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...