linux vt100 常用控制码
详细可以man console_codes
\033 同 \e
\e[nG 光标移动到当前行的n列 同 \e[n\`
\e[n\` 光标移动到当前行指n列 同\e[nG
\e[d 光标移动到当前列指定行
\e[x;yH 光标移动x行y列 同\e[x;yf
\e[xH: 光标移动到x行
\e[x;yf 光标移动到指定的行和列,同\e[x;yH
\e[xf: 光标移动到x行
\e[J 删除(默认从当前光标处到行尾的)内容.
\e[1J: 删除从开始到光标处的内容.
\e[2J: 清空整个屏幕.
\e[3J: 清空整个屏幕,包括scroll back buffer(since kernel 3.0)
\e[K 删除行(默认从当前光标处到结尾).
\e[1K: 删除从行首到当前光标处的内容.
\e[2K: 删除整行
\e[x;yr 设置滚动范围;
\e[x;yr: 滚动范围为x行至y行
\e[xr: 滚动范围为x行至窗口底框
\e[s 存储光标位置
\e[u 恢复光标位置
\e[?25l 隐藏光标
\e[?25h 显示光标
\e[m属性:
0m 所有属性重设为默认值
1m 粗体
4m 下划线
前景:
30m 黑色
31m 红色
32m 绿色
33m 黄色
34m 蓝色
35m 紫色
36m 青色
37m 白色
背景:
40m 黑色
41m 红色
42m 绿色
43m 黄色
44m 蓝色
45m 紫色
46m 青色
47m 白色
写了一段窗口中前3行不动,后面4-10行滚动输出代码:
clear t1='title_1' t2='title_2' header() { #echo -ne "\e[?25l" #hide cursor #set line 1 *** for i in `seq 1 51`;do echo -ne "\e[1;${i}H*" done #set line 3 * for i in `seq 1 51`;do echo -ne "\e[3;${i}H*" done echo -ne "\e[2;1H|" echo -ne "\e[2;26H|" echo -ne "\e[2;51H|" echo -ne "\e[2;9H$t1" echo -ne "\e[2;39H$t2" echo -e "\e[4;10r" #echo -e "\e[4r" echo -e "\e[3H" } show() { for i in `seq 1 30` do #echo -e "|\e[15\`$i\e[26\`|\e[40\`$i\e[51\`|" echo -e "|\e[15G$i\e[26G|\e[40G$i\e[51G|" sleep 0.1 done } ##main## header show
输出:
补充一下:
echo -e "\e[0r" 清除滚动区域