Linux基本知识之echo命令详解

该博文以CentOS6.8_x86_64系统为基础,Xshell使用pts/X终端登录CentOS6.8系统,以root身份登录系统。

为什么学习echo命令?

    echo是一种最常用的与广泛使用的内置于Linux的bash和C shell的命令,通常用在脚本语言和批处理文件中来在标准输出或者文件中显示一行文本或者字符串。

echo命令的详解

   功能:显示字符

   语法:echo [-neE][字符串]

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

       echo "$VAR_NAME":  变量会替换,双引号表弱引用

       echo '$VAR_NAME':  变量不会替换,强引用

       $echo –e “Enter the file name: \c”

       echo  需要使用-e  参数来打印转义字符.

   echo命令选项:

       -n:不在字符的最后,自动换行(使用-n命令之后,发现输入之后接着就是命令的提示符,不会换行)

     blob.png

       -e:若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

       \a:发出警告声(我们发现当使用-e 后面接"\a"字符的时候,回车之后不会出现\a字符,反而会听到警告声)

     blob.png

       \b:删除前一个字符(正常我们输出的是hostname,当中间穿插\b之后,将前面的hostname中间的t直接删除,显示到屏幕上面是hosname)

     blob.png

       \c:最后不加上换行字符(命令执行的结果相当于echo -n的执行结果)

    blob.png

       \n:换行且光标移至行首(相当于在hostname中间添加了一个回车)

    blob.png

       \r:光标移至行首但不换行(相当于执行命令的时候,先打印host,然后光标移到host的h前面,然后接着打印name,用name将host覆盖。)

    blob.png       

        \t:插入tab(相当于在打印的host之后使用一下tab键,再执行打印name)

    blob.png

       \\:插入\字符(在host中间插入\ls)

    blob.png

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

            echo -e "\033[43;31m CentOS Linux \033[0m"

        \033[43;31m:将后面CentOS Linux设置成红色字体(31m),黄色背景(43m)

        \033[0m :将刚才设置的属性,取消掉

    blob.png

       \xHH:插入HH(十六进制)所代表的ASCII 插入的是\xb5 打印的是个μ

    blob.png

    ASCII表

blob.png

    echo输出颜色文本:

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

          eg:echo -e "\033[34;43;4;5m SAY\033[0m HELLO"(由于截图的原因,只能显示静态的SAY其实,SAY是删除的字符)

   blob.png

             \033[34;43;4;5m SAY  :设置字体颜色为蓝色,背景颜色为黄色,字体加下划线且闪烁

             \033[0m HELLO      :重新设置屏幕缺省设置,输出字符"HELLO"

           "e"是命令echo的一个可选项,它用于激活特殊字符的解析器。"\033"引导非常规字符序列(即"\033["表示终端转义字符开始,"\033"即退出键<ESC>的ASCII码)。"m"意味着设置属性然后结束非常规字符序列,这个例子里真正有效的字符是"34;43;4;5"和"0"。修改"34;43;4;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

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

        这种方法只能暂时改变echo命令输出的文本的样式,logout后就恢复为默认。修改.bashrc文件,可以修改默认的显示样式。如:在.bashrc文件的最后面追加一行:echo -e '\033[47;30m'。

        上课布置的练习题:echo 查闪烁,下划线,加颜色       

            *******   (7个)

             *****   (5个)

              ***    (3个) 

               *    (1个)

    echo -e "\033[33;42;4;5m*******\033[0m\n \033[31;43;4;5m*****\033[0m\n  \033[32;44;4;5m***\033[0m\n   \033[34;45;4;5m*\033[0m "

实验输出现象为:

ScreenGif.gif

原创文章,作者:sjsir,如若转载,请注明出处:http://www.178linux.com/25860

(0)
sjsirsjsir
上一篇 2016-07-29 15:26
下一篇 2016-07-29 15:26

相关推荐

  • 关于大型网站技术演进的思考(十四)–网站静态化处理—前后端分离—上(6)

    原文出处: 夏天的森林   前文讲到了CSI技术,这就说明网站静态化技术的讲述已经推进到了浏览器端了即真正到了web前端的范畴了,而时下web前端技术的前沿之一就是前后端 分离技术了,那么在这里网站静态化技术和前后端分离技术产生了交集,所以今天我将讨论下前后端分离技术,前后端分离技术讨论完后,下一篇文章我将会以网站 静态化技术的…

    Linux干货 2015-03-03
  • 磁盘管理

    磁盘管理磁盘管理 本章内容 磁盘结构 分区类型 管理分区 管理文件系统 挂载设备 管理虚拟内存 设备文件 I/O Ports: I/O设备地址 一切皆文件: open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘 设备文件:关联至一…

    Linux干货 2016-08-26
  • keepalived+nginx 实现 sharepoint 负载均衡

    keepalived 实现虚拟路由
    nginx 做反向代理和负载均衡

    Linux干货 2017-12-20
  • 正则表达式简述

    正则表达式简述 什么是正则表达式: 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 正则表达式分类: 标准正…

    Linux干货 2016-04-05
  • MySQL常用字符函数

    MySQL常用字符函数简介 CONCAT(S1,S2…Sn) 连接S1,S2…Sn为一个字符串 concat函数,把传入的参数连接成为一个字符串。 例如: 把“aaa”、“bbb”、”ccc”3个字符串连接成一个字符串,“aaabbbccc”.另外任何与NULL进行连接的结果都将是NULL. >SELEC…

    Linux干货 2017-05-01
  • Linux进程与作业1

    Linux进程与作业 操作系统的组成部分:硬件,kernel,lib, 系统调用–>调用kernel lib调用–> 库调用,kernel调用 运行用户代码–>用户模式–>用户空间; 运行kernel–>内核模式–>内核空间; 内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能 C…

    Linux干货 2016-08-02