Linux基础命令之echo(涉及bash命令引用及替换部分内容)


echo是Linux中较为常见的命令,特别是在bash的脚本编写中它的灵活运用是必不可少的。

在man手册中的解释是:display a line of text,翻译过来就是回显或者再通俗点说就是显示字符或数字。解释看起来很简单,不过这个命令可以实现的功能却很丰富。

我之所以写关于echo的内容是因为一项作业,作业的内容是让显示一个由任意字符组成的倒三角图形,且要求字符闪烁并有字体颜色跟背景色。

这个作业先搁置一边稍后再解决。

先介绍下echo的基本信息

以下是从CentOS-6.8中的man手册里截取的echo命令使用信息。

NAME  命令名
      echo - display a line of text  展示一行文字,即回显
 
SYNOPSIS  命令的使用格式
      echo [SHORT-OPTION]... [STRING]...  echo [短格式]...[字符串]...
      echo LONG-OPTION                    echo 长格式
 
DESCRIPTION    命令描述
      Echo the STRING(s) to standard output.  echo字符串至标准输出
 
      -n    do not output the trailing newline  输出后不换行
 
      -e    enable interpretation of backslash escapes 使转义字符生效
 
      -E    disable interpretation of backslash escapes (default) 禁用转义字符
 
      --help display this help and exit  显示使用帮助即退出信息
 
      --version                      版本
              output version information and exit  输出所用版本信息
         
        If -e is in effect, the following sequences are recognized: 如果-e生效后,如下的转移字符就可以被识别
 
      \\    backslash  反斜线转义符
       
      \a    alert (BEL) 提示符
 
      \b    backspace  退格符
 
      \c    produce no further output 
 
      \e    escape 逃逸符
 
      \f    form feed
 
      \n    new line  换行符
 
      \r    carriage return 
 
      \t    horizontal tab 水平制表符
 
      \v    vertical tab  垂直制表符

  以上是echo的命令及常用的使用信息。

    这里可以看出来echo的命令最丰富的是在于-e使转义符生效。在-e模式下我们可以丰富字符的输出形式,比如让字符闪烁,有背景色与字体颜色。

下面我展示下我作业的一段命令来详细说明-e模式下的echo功能。

echo -e "\033[0m  \033[45;32;5m***\033[0m\n    \033[45;32;5m*\033[0m"

看起来很炫吧。

下面来对

echo -e "\033[0m  \033[45;32;5m***\033[0m\n    \033[45;32;5m*\033[0m"

进行详细的解析,以便大家对其有更清晰的认识

解释:echo -e前面已有很明确的介绍,这里就不多介绍。它的作用是开启转义字符功能

“”因为它的缘故这里先解释下bash里面的引用

bash里面引用分一下几种

$()是命令引用

# echo $(date)
2016年 07月 25日 星期一 14:37:12 CST

    它显示的是date这个命令的执行结果信息

    ``跟$()是一样的

  ‘’ 弱引用:输入的东西显示输入的字符串

#echo 'date'
date

    这里显示的date这个字符串

  “” 强引用

    单条命令中常用到,使其中间的转义字符生效。

    ${}是变量引用

#TEX=tex
# echo ${TEX}
tex

    显示变量内容

    这部分内容看完相信大家对于bash的命令引用与替换会有了初步的认识,凭借这些认识,我们应该可以了解为什么在-e模式下使用“”引号吧。实在不知道也没关系,记住就行

    "\033"引导非常规字符序列(即"\033["表示终端转义字符开始,"m"意味着设置属性然后结束非常规字符序列,里面有实际作用的字符是45;32;5和0,修改45;32;5可以修改不同的颜色组合,及显示形式。45;32;5这几个数字位置可以任意改动。

          编码          颜色/动作
          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           设置缺省黑色背景

echo -e "\033[0m  \033[45;32;5m***\033[0m\n    \033[45;32;5m*\033[0m"

我这里使用了45设置其背景色为紫色,32设置字体颜色也就是前景颜色为绿色,5表示闪烁模式。0m表示字符效果到此结束。

第一个\033[0m后有两个空格,因为不想让小三角靠边显示;

第二个\033[45;32;5m***显示背景为紫字体为绿且闪烁的三个***;

第三个\033[om\n之所以加\n是因为最后一个*要换行,换行后还要接三个空格;

第四个\033[45;32;5m*显示背景为紫字体为绿且闪烁的一个*;

第五个\033[0m字符效果到此结束。

查找的资料:

Linu命令引用与替换

本文永久更新链接地址

相关内容