如何在Mac OS终端上清除行?

时间:2019-10-11 05:55:36

标签: macos terminal

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

上表显示Esc[2K清除一行。

但是在Mac Terminal上,我看不到该行已清除。

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

TERM变量如下。

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

有人清除线吗? (如果可能,它应该可以在Mac Terminal以外的其他终端上运行。)谢谢。

1 个答案:

答案 0 :(得分:1)

我只是打个小错号,因为与清除一行相关的转义序列是Esc[2K,大写字母K而不是k

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

应能按预期工作。请注意,echo -e和ANSI C样式转义符($'...')是bash特定于Shell的并且不符合POSIX。您始终可以使用也支持转义序列的printf()

printf abc'\e[2K'

\e的所有版本也可能不支持转义符echo,但仅提供内置的bash。您可以将\e的十六进制等值用作\x1B或八进制的\033