• 非常好!!!---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就是使用的转义序列: "33[H""33[J"
    直接printf之.
    
    一些特殊的转义序列: 
    (以 help echo 的结果为蓝本, 添加部分别人的注释, 无为有修改)
    a        终端响铃(小机不支持...同 x07, 07)
            退格, 光标左移一格.
    c        禁止行尾自动换行, 对echo有效, printf无效
    e        ESC转义序列(见下, 同E, 033, x1b; 就是ESC键按下的效果)
    f        换页(光标移到下一行的相同列)
    
            换行(光标移动下一行行首)
    
            回车(光标回到本行行首)
    	        制表符(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)
           
         换行
           
         回车
           s     shell的名称. 根据路径获取. 如/usr/bin/bash --> "bash"
           	     时间, 格式 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, 显示 "#"; 否则, "$".
           
    nn   八进制数
           \     倒斜杠
           [     这个序列应该出现在不移动光标的字符序列(如颜色转义序列)之前. 它使 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        显示终端光标
  • 相关阅读:
    Ubuntu部分命令的使用简介
    向Ubuntu的Dash中添加图标
    Ubuntu下实现gedit支持nesC语法高亮
    zoj 1453 Surround the Trees(凸包求周长)
    fzu 1015 土地划分(判断线段相交+求出交点+找规律)
    zoj 1648 判断线段是否相交
    hdu 1086(计算几何入门题——计算线段交点个数)
    zoj 1081 判断点在多边形内
    判点在直线上,三角形内
    poj 1269 Intersecting Lines(判相交交点与平行)
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/5669320.html
Copyright © 2020-2023  润新知