B S*_*ven 5 shell terminal special-characters shell-script escape-characters
我发现通过\r从脚本打印光标移动到行首。
什么字符会将光标向上移动一行?
这些特殊字符的列表在哪里?
编辑:在 OSX 中工作。另外,\a敲钟。
终端相关的定位控制可以通过tput. 这包括基本的高亮和光标定位。例如,要将光标移动到第 10 行、第 1 列,您可以使用tput cup 10 1. 请参阅tput联机帮助页。
如果您的终端模拟器支持ANSI 转义序列,您可以通过运行以下命令向上移动光标:
echo -n -e '\033[2A'
Run Code Online (Sandbox Code Playgroud)
或者
ruby -e 'print "\033[2A"'
Run Code Online (Sandbox Code Playgroud)
这会将光标向上移动 2 行。它的工作原理gnome-terminal,并xterm和其他许多人。
那些特殊字符来自 7 位 ASCII 码集,其中包含本表中的 128 个字符;shell 转义符号没有显示在那里,而是\r第 14 个字符(十进制值 13),CR(回车)。铃是第 8 个字符(十进制值 7)。\n,在 *nix 和派生领域中称为换行符,是第 11 个字符(十进制值 10),LF(换行)。
大多数 ASCII 集都是正常的字母数字字符。表格开头的大多数“特殊字符”实际上今天没有任何用途(换行符等除外)。ANSI 兼容终端(包括大多数基于 *nix 的现代虚拟终端)使用ESC(十进制 27,八进制 33)来启动特殊控制序列 ( \033...) —— 正如 Mark Plotnick 在他的回答中指出的那样,其中一些允许垂直移动。
在该表中本身就存在VT(十进制11),垂直标签,但它的动作下来。没有允许向上移动的单个字符。