非常好!!!---bash转义序列笔记---打印语句printf用法【转】
转自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2318684&fromuid=23571134
本教程由 惟吾无为 搜集整理. 序列后面的批语是基于本人的学习机(下文的小机)终端来说的.
今抛砖于此, 望有玉石相应(挺划算的^_^, 玉还是比较贵的...).
文本下载, 3.85KB, txt : http://www.uudisc.com/user/vuuvsoft/file/4063312
转义是引用单字符的方法.在单个字符前面的转义符(\ 倒斜杠)告诉shell不必特殊解释这个字符,只把它当成字面上的意思.
但在一些命令和软件包里,比如说echo和sed,转义一个字符可能会引起一个相反的效果--因为它们可能触发那个字符的特殊意思.
---引自 abs
清屏函数 用转义序列. busybox的clear就是使用的转义序列: "\033[H""\033[J" 直接printf之. 一些特殊的转义序列: (以 help echo 的结果为蓝本, 添加部分别人的注释, 无为有修改) \a 终端响铃(小机不支持...同 \x07, \07) \b 退格, 光标左移一格. \c 禁止行尾自动换行, 对echo有效, printf无效 \e ESC转义序列(见下, 同\E, \033, \x1b; 就是ESC键按下的效果) \f 换页(光标移到下一行的相同列) \n 换行(光标移动下一行行首) \r 回车(光标回到本行行首) \t 制表符(TAB键按下的效果...) \v 纵向制表符(同\f) \x00 十六机制数的值(两位[0-9a-fA-F]的十六进制数). \\ 倒斜杠... \000 八进制数的值(以数字开头, 限最多3位[0-7]的数字) PS 转义序列 (prompt symbol, bash提示符): (出自 http://www.linuxselfhelp.com/how ... h-Prompt-HOWTO.html , 翻译有参考) \a 响铃 \d 日期, 格式为 "Weekday Month Date", ("Tue May 26") \e ESC转义序列. \h 主机名的第一部分. (froms) \H 完整主机名. (froms.vuuvsoft.com) \n 换行 \r 回车 \s shell的名称. 根据路径获取. 如/usr/bin/bash --> "bash" \t 时间, 格式 HH:MM:SS 24小时制. ("23:01:01") \T 时间, 格式 HH:MM:SS 12小时制. ("11:01:01") \@ 带有 am/pm 的 12小时制 时间 \u 用户名. ("root") \v bash版本号 ("2.00") \V bash版本号及补丁级别 ("2.00.0") \w 当前工作目录完整路径 ("/home/froms") \W 当前工作目录目录名 ("froms") \! 当前命令在历史缓冲区中的位置 \# 命令编号(只要您键入内容,它就会在每次提示时累加) \$ 如果你是root, 显示 "#"; 否则, "$". \nnn 八进制数 \\ 倒斜杠 \[ 这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前. 它使 bash 能够正确计算自动换行. \] 这个序列应该出现在非打印字符序列之后. ( \[\e[32;47m\] ) (无为注: 当然, 你也可以用命令替换来显示时间日期: PS1="$(date +%x-%X)") ( 以下内容来自 man console_codes 的结果, 翻译有修改, 并删除部分无法在小机使用的序列. ) ESC 转义序列: c 重置终端. D 换页(纵向制表符). E 换行. H 设置当前列为制表位. (未验证) M 翻转换行, 向上换页(Reverse linefeed). 7 存储当前状态(光标坐标, 属性). 8 恢复上一次储存的设置 [ (见下) #8 屏幕校准测试 - 以E填充屏幕. 例: printf "\e#8" ESC[ 转义序列: A 光标上移指定行. B 光标下移指定行. C 光标右移指定列. \e[3C 右移3列 D 光标左移指定列. G 光标移动到当前行的指定列. H 光标移动到指定行和列(行列起始计数为1, tput cup 的起始计数为0). \e[y;xH y=3; x=5 第三行第五列. J 删除内容(默认从当前光标处到结尾). \e[1J: 删除从开始到光标处的内容. \e[2J: 清空整个屏幕. K 删除行(默认从当前光标处到行尾). \e[1K: 删除从行首到当前光标处的内容. \e[2K: 删除整行. d 光标移动到当前列指定行 f 同\H. h 设置模式(见下). l 重置模式(见下). m 设置属性(见下). n 状态报告(见下). r 设置滚动范围; 参数为首行和末行.(好像不能用...) s 存储光标位置. u 恢复光标位置. 设置图形属性: \e[ <属性数值> m 设置显示属性. 同样的序列可以设置一个或多个属性, 以 ";" 分开. 特效代码: 0 清除所有属性 1 高亮(并加粗, 可惜小机没有加粗) 2 暗色(以一般亮度显示, 小机不支持) 4 下划线 5 闪烁(小机闪烁频率太低, 无用) 7 反显. 8 消隐(一段字不显示, 小机不支持) 22 正常亮度 24 关闭下划线 25 不闪烁 27 不反显 颜色代码前缀: 3: 前景 9: 加亮前景 4: 背景 10: 加亮背景 颜色代码后缀(加亮效果): 0 黑(深灰) 1 红(亮红) 2 绿(亮绿) 3 棕(黄色) 4 蓝(浅蓝) 5 紫(淡紫)(这个看不出来) 6 青(亮青) 7 浅灰(白) 9 默认颜色(限3,4前缀) 示例: 绿色前景, 亮青背景, 下划线. 0表示清除之前设置的所有属性. \e[0;32;106;4m 打印一段内容后, 不要下划线了 \e[24m 又想反显了(就是绿色背景, 亮青前景) \e[7m 那么, 怎么除去反显呢? 状态报告: \e[5n 设备状态报告(DSR): 以\e[0n 应答(终端准备好). \e[6n 光标位置报告(CPR): 以\e[y;xR 应答, 这里 x,y 指光标位置. 设置模式( 用l替换最后一个h就是重置模式 ) \e[?5h 全屏反显. \e[?25h 显示终端光标
【作者】sky
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.