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

Le tableau ci-dessus montre que Esc[2K efface une ligne.

Mais sur Mac Terminal, je ne vois pas que la ligne est effacée.

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

La variable TERM est la suivante.

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

Quelqu'un sait-il comment effacer une ligne? (Si possible, cela devrait également fonctionner sur d'autres terminaux autres que Mac Terminal.) Merci.

0
user1424739 11 oct. 2019 à 08:55

1 réponse

Meilleure réponse

Je parierais simplement comme une faute de frappe mineure, car la séquence d'échappement associée à l'effacement d'une ligne est Esc[2K avec une majuscule K et non k

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

Devrait fonctionner comme prévu. Notez que echo -e et les échappements de style ANSI C ($'...') sont spécifiques au shell bash et non conformes à POSIX. Vous pouvez toujours utiliser printf() qui prend également en charge les séquences d'échappement

printf abc'\e[2K'

De plus, la notation de caractère d'échappement \e peut pas être prise en charge dans toutes les versions de echo, mais la seule bash intégrée fournie. Vous pouvez utiliser l'équivalent hexadécimal de \e comme \x1B ou un équivalent octal de \033.

1
Inian 11 oct. 2019 à 16:00