http://blog.chinaunix.net/uid-27124799-id-3383327.html

# echo命令介绍

功能说明:显示文字。

语   法:echo [-ne][字符串] / echo [--help][--version]

补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

参   数

    -n 不要在最后自动换行

    -e 打开反斜杠ESC转义。若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

           \a 发出警告声;

           \b 删除前一个字符;

           \c 最后不加上换行符号;

           \f 换行但光标仍旧停留在原来的位置;

           \n 换行且光标移至行首;

           \r 光标移至行首,但不换行;

           \t 插入tab;

           \v 与\f相同;

           \\ 插入\字符;

           \nnn 插入nnn(八进制)所代表的ASCII字符;

    -E 取消反斜杠ESC转义 (默认)

    -help 显示帮助

-version 显示版本信息

############################################################

echo输出颜色文本

echo命令改变样式,以输出不同颜色的文本,必须有 -e 选项(开启echo中的转义)。

文本终端的显示颜色可以使用“ANSI非常规字符序列”来生成。

例如:echo -e "\033[44;37;5m ME\033[0m COOL"

解释:"\033[44;37;5m ME "设置背景为蓝色,前景为白色,闪烁光标,输出字符“ME”;

      "\033[0m COOL"重新设置屏幕到缺省设置,输出字符 “COOL”。

      "e"是命令echo的一个可选项,它用于激活特殊字符的解析器。"\033"引导非常规字符序列(即"\033["表示终端转义字符开始,"\033"即退出键<ESC>的ASCII码)。"m"意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符是"44;37;5"和"0"。修改"44;37;5"可以生成不同颜色的组合,数值和编码的前后顺序没有关系。

    

    可以选择的编码如下所示(这些颜色是ANSI标准颜色):

          编码          颜色/动作

          0            重新设置属性到缺省设置

          1            设置粗体

          2            设置一半亮度(模拟彩色显示器的颜色)

          4            设置下划线(模拟彩色显示器的颜色)

          5            设置闪烁

          7            设置反向图象

          22           设置一般密度

          24           关闭下划线

          25           关闭闪烁

          27           关闭反向图象

          30           设置黑色前景

          31           设置红色前景

          32           设置绿色前景

          33           设置黄色前景

          34           设置蓝色前景

          35           设置紫色前景

          36           设置青色前景

          37           设置白色(灰色)前景

          38           在缺省的前景颜色上设置下划线

          39           在缺省的前景颜色上关闭下划线

          40           设置黑色背景

          41           设置红色背景

          42           设置绿色背景

          43           设置黄色背景

          44           设置蓝色背景

          45           设置紫色背景

          46           设置青色背景

          47           设置白色(灰色)背景

          49           设置缺省黑色背景

    其他有趣的代码还有:

          \033[2J      清除屏幕

          \033[0q      关闭所有的键盘指示灯

          \033[1q      设置"滚动锁定"指示灯(Scroll Lock)

          \033[2q      设置"数值锁定"指示灯(Num Lock)

          \033[3q      设置"大写锁定"指示灯(Caps Lock)

          \033[15:40H   把关闭移动到第15行,40列

          \007        发蜂鸣生beep

一些说明

    前景颜色各数字是对应背景颜色减去10。

    结束非常规字符序列的"m"要紧跟前面的数字,不能有空格。

    命令也可以写成echo -e "^[[44;37;5m ME \033[0m COOL",其中的"^["是先按Ctrl-V,然后再按<ESC>键产生的。

输出带有颜色的文本,echo命令必须带有选项"-e"。

这种方法只能暂时改变echo命令输出的文本的样式,logout后就恢复为默认。修改.bashrc文件,可以修改默认的显示样式。

如:在.bashrc文件的最后面追加一行:echo -e '\033[47;30m'。

#-----------------------------------------------------------

建议:在shell文件的最前面,将echo命令的输出样式定义成变量。

    # define echo terminal style

    # color: 0~6 --> black, red, green, yellow, blue, purple, cyan, grey

    export ECHO_STYLE_00="\033[0m"        # default style(black background, white foreground)

    export ECHO_STYLE_01="\033[41;33;1m"  # red background, yellow foregound bold

    echo -e "${ECHO_STYLE_01}echo command terminal style example${ECHO_STYLE_00}"

############################################################

echo命令的其他用法

1).光标跳到第60列,然后显示一个OK。

    格式:echo -en '\033[60G' && echo OK

    说明:"\033["是终端转义字符开始,60G是命令。

############################################################

然后给几个比较强大的脚本函数

1) cfont

#by zuoyang http://hi.baidu.com/test/

cfont()

{

while (($#!=0))

do

        case $1 in

                -b)

                        echo -ne " ";

                ;;

                -t)

                        echo -ne "\t";

                ;;

                -n)     echo -ne "\n";

                ;;

                -black)

                        echo -ne "\033[30m";

                ;;

                -red)

                        echo -ne "\033[31m";

                ;;

                -green)

                        echo -ne "\033[32m";

                ;;

                -yellow)

                        echo -ne "\033[33m";

                ;;

                -blue)

                        echo -ne "\033[34m";

                ;;

                -purple)

                        echo -ne "\033[35m";

                ;;

                -cyan)

                        echo -ne "\033[36m";

                ;;

                -white|-gray) echo -ne "\033[37m";

                ;;

                -reset)

                        echo -ne "\033[0m";

                ;;

                -h|-help|--help)

                        echo "Usage: cfont -color1 message1 -color2 message2 ...";

                        echo "eg:       cfont -red [ -blue message1 message2 -red ]";

                ;;

                *)

                echo -ne "$1"

                ;;

        esac

        shift

done

}

使用方法是

cfont -颜色 字符串...

如:

cfont -cyan abc

注意使用时要换行需要加入 -n 选项。想要恢复默认的要加入 -reset选项。





2) 颜色码表

#!/bin/bash

T='gYw' # The test text



echo

echo "        default 40m     41m     42m     43m     44m     45m     46m

47m"

## FGs 为前景(foreground)色, BG 为背景(background)色

for FGs in '    m' '   1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' '1;32m' '

33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' ' 36m' '1;36m' ' 37m' '1;37m'

        do

        FG=$(echo $FGs|tr -d ' ')

        echo -en " $FGs \033[$FG $T "

        for BG in 40m 41m 42m 43m 44m 45m 46m 47m;

                do

                echo -en " \033[$FG\033[$BG $T \033[0m"

        done

        echo

done

echo

转至:http://blog.csdn.net/felix_f/article/details/12433171#comments

Shell命令:echo 命令详解的更多相关文章

  1. Linux常用命令及部分详解

    1.总结部分 常用指令 ls      显示文件或目录 -l            列出文件详细信息l(list) -a            列出当前目录下所有文件及目录,包括隐藏的a(all) m ...

  2. telnet 命令使用方法详解,telnet命令怎么用

    telnet 命令使用方法详解,telnet命令怎么用? 文章类型:电脑教程 原创:天诺时空   什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协 ...

  3. linux route命令的使用详解 添加永久静态路由 tracert traceroute

    linux route命令的使用详解 添加永久静态路由  tracert  traceroute route -n    Linuxroute  print  Windows traceroute  ...

  4. [转帖]XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件

    XCopy复制文件夹命令及参数详解以及xcopy拷贝目录并排除特定文件 https://www.cnblogs.com/smartsmile/p/7665979.html xcopy dirA dir ...

  5. ping命令执行过程详解

    [TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...

  6. Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  7. 以太坊客户端Geth命令用法-参数详解

    Geth在以太坊智能合约开发中最常用的工具(必备开发工具),一个多用途的命令行工具. 熟悉Geth可以让我们有更好的效率,大家可收藏起来作为Geth命令用法手册. 本文主要是对geth help的翻译 ...

  8. 每周一个linux命令之---uptime详解

    每周一个linux命令之---uptime详解 linux命令 uptime详解 引言:从今天开始,每周更新一个对程序员有用的linux命令,我真的没敢写每天一个,我怕我坚持不下去,每周一个还是可以的 ...

  9. free命令常用参数详解

    free命令常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在运维期间我们会经常去查看服务器硬件信息,比如说内存,大家可能知道看内存用“[root@yinzhengji ...

  10. 【linux】linux命令grep + awk 详解

    linux命令grep  +  awk 详解 grep:https://www.cnblogs.com/flyor/p/6411140.html awk:https://www.cnblogs.com ...

随机推荐

  1. ●UVA 10674 Tangents

    题链: https://vjudge.net/problem/UVA-10674 题解: 计算几何,求两个圆的公切线. <算法竞赛入门经典——训练指南>P266,讲得很清楚的. 大致是分为 ...

  2. bzoj 1835: [ZJOI2010]基站选址

    Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄 ...

  3. python raise和assert的区别

    python中raise和assert的区别 一.使用raise抛出异常 python可以自动触发异常,raise(内置函数)的定义为显示的抛出异常,用户可以使用raise进行判断,显式的引发异常,r ...

  4. Spring学习笔记2——创建Product对象,并在其中注入一个Category对象

    第一步:创建Product类.在Product类中有对Category对象的set和get方法 package com.spring.cate; public class Product { priv ...

  5. css修改浏览器默认的滚动条样式

    //滚动条样式 ::-webkit-scrollbar { width: 10px; } /* 垂直滚动条的滑动块 */ ::-webkit-scrollbar-thumb:vertical { bo ...

  6. Apache 443端口占用解决方法

    当运行httpd.exe时,出现如下问题 原因是启动Apache会占用443端口,而443被其他程序占用了.我们只需将Apache默认端口443改掉就行.网上搜了一下,说是更改Apache24\con ...

  7. Dubbo介绍和服务架构分析

    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成.使用zookeeper作为服务的注册中心,对外提供服务 ...

  8. beta 分布的详细介绍(转载)

    目前看到的关于beta分布最好的一个解释,由于贴过来格式不好看,所以附上链接: http://www.datalearner.com/blog/1051505532393058

  9. ZooKeeper之(六)应用实例

    6.1 Java API 客户端要连接 Zookeeper服务器可以通过创建 org.apache.zookeeper.ZooKeeper 的一个实例对象,然后调用这个类提供的接口来和服务器交互. Z ...

  10. 让你的代码量减少3倍!使用kotlin开发Android(三) 缩短五倍的Java Bean

    回顾一下 哈,没想到你已经坚持不懈看到第三篇了,不错哈~坚持就是胜利. 本文同步自博主的私人博客wing的地方酒馆 在上一篇文章中,我们介绍了扩展函数,这里对上一篇进行一点小小的补充. 还记得text ...