引言

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


echo的内容简介

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

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

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

先介绍下echo的基本信息

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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的常用方式及其高级使用


常用表达

1、显示给出的东西比如字母、数字、字符。

1
2
[root@centos6 ~]# echo "a1.3fg@1"
a1.3fg@1

2、显示命令结果,比如显示ls /root的执行结果

1
2
[root@centos6 ~]# echo $(ls /root)
anaconda-ks.cfg install.log install.log.syslog 公共的 模板 视频 图片 文档 下载 音乐 桌面

3、显示变量内容

1
2
3
4
5
6
7
8
[root@centos6 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos6 ~]# echo ${PATH}
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos6 ~]# echo "$PATH"
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos6 ~]# echo '$PATH'
$PATH

上面为什么有“”、‘’、$()、${}、``等包裹内容的符号,这是bash里面的表示几种不同引用的符号标识。

bash里面引用分一下几种

$()是命令引用

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

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

``跟$()是一样的

‘’ 强引用:变量不执行替换

1
2
#echo '$PATH'
$PATH

这里显示的date这个字符串

“” 弱引用

${}是变量引用

1
2
3
#TEX=tex
# echo ${TEX}
tex

显示变量内容

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


echo的高级表达:

从上面的man帮助里面可以发现echo中有关-e的内容特别多,为什么?因为在-e模式下我们可以丰富字符的输出形式,比如让字符闪烁,有背景色与字体颜色。

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

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

看起来很炫吧。

下面来对该命令

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

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

echo -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           设置缺省黑色背景

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

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

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

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

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

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


对echo命令的感受

echo是回显命令,可以在屏幕显示一些内容,这些内容可以是自己输入的,也可以是命令显示,初学时感觉不到echo这个命令有什么实际的使用价值,不过等再学一阵接触到编写脚本,就会发现echo人性化的地方,它可以显示一些你定义的东西给使用者看。比如你写了个脚本,这个脚本需要用户输入一些内容,此时若没有使用echo,不考虑read命令,就会什么也不显示,如果使用者不知道这个脚本的作用那他根本不知道要输入什么东西。echo是一个很实用且使用率很高的命令,需要自己去细细体会。

查找的资料:

http://blog.csdn.net/qualcent/article/details/7106483 echo使用信息

http://www.linuxidc.com/Linux/2015-05/117259.htm Linu命令引用与替换

CentOS6.8中man手册

本文转自 紫色的茶碗 51CTO博客,原文链接:http://blog.51cto.com/chawan/1829672,如需转载请自行联系原作者

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

  1. linux基础入门---用户和组管理命令

    计算机中用户的作用:主要实现资源分享,在分享资源同时涉及到资源安全,又新增用户密码认证,使其资源由特定权限的用户或用户组才可访问. linux系统中用户和组分类: 用户分为:管理员用户(root).普 ...

  2. Linux基础(3) Vim编辑器与Shell命令脚本

    1.VIM文本编辑器 VIM编辑器的三大模式 命令模式: 控制光标移动,可对文本进行复制.粘贴和查找等工作 输入模式: 正常的文本录入. 末行模式: 保存或退出文档,以及设置编辑环境 三种模式的切换: ...

  3. linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

    作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...

  4. linux中shell命令行缩进,Linux下几个实用的bash命令 | 旺旺知识库

    一.扩展字段匹配 首先我们来看一个叫做扩展字段匹配的功能.这个选项允许你执行比标准Bash所提供的更复杂的字段匹配.例如,你可以定位除了后缀为.tmp之外的所有文件.扩展字段匹配功能可以通过shopt ...

  5. linux教程 sed命令的用法,Linux基础教程之文件三剑客sed命令用法详解

    sed是一种流编辑器,它是文本处理中非常强大的工具,能够完美的配合正则表达式使用,用法简单实用,非常灵活. 工作原理:sed命令处理文本时,把当前处理的行存储在一个临时缓冲区中,称为"模式空 ...

  6. Linux shell 脚本文件@echo Off 关闭命令回显

    window的bat脚本用@echo off 就能关闭echo命令的输入显示,这样在echo后,提示的文字就不会那么难看 最近在写shell脚本,发现linux下的echo无法这样来处理 找了好久才找 ...

  7. linux ls和cd命令详解,Linux基础cd、pwd和ls命令

    cd命令 cd命令是change directory的缩写,中文翻译:更改文件夹(目录). cd destination cd命令可接受单个参数destination,用以指定想切换到的目录名.如果没 ...

  8. Python基础之Linux基础入门(Ubuntu)——其他命令

    ctrl+F搜索文本 行首模式查找 行尾模式查找 06其他 6.1 echo文字内容 echo一般和重定向一起使用 注意touch和echo的区别 6.2 重定向>和>> 将本应该在 ...

  9. Linux基础(1)--Vim编辑器的常用命令

    Vim编辑器的常用命令 指令模式 输入模式 底行模式(shift+:) 指令模式 指令模式命令也叫命令行模式 – G 光标置于文本最后一行,最后一列.大写输入为按键"Shift+g" ...

最新文章

  1. Intellij-Idea使用小细节
  2. [译]ElasticSearch数据类型--string类型已死, 字符串数据永生
  3. 北斗导航 | 卫星导航基础知识(卫星导航时间系统)
  4. python selenium处理JS只读(12306)
  5. Scrapy安装报错
  6. 机器学习系统设计(一)--入门之环境搭建
  7. Spring4.3.10 集成 Apache CXF 3.3 详细说明
  8. 物业费管理系统c语言作业,c语言物业管理系统.doc
  9. Pinczakko的AwardBIOS逆向工程指导
  10. 数据库查询之内连接,左连接,右连接
  11. SOUI实例之扫雷一
  12. ps快捷键_学习笔记
  13. 百度云搭建微信公众平台服务器,微信大众开放平台开发03-百度BAE上搭建属于自己的微信公众平台 -JAVA,微信公众开放平台部署到百度云中BASE2.0,进行调试,木有钱买云服务器的亲们试试...
  14. JavaScript 教程「1」:与君初相识
  15. Android移动应用开发 多功能平台app
  16. 【粤教版必修一《数据与计算》】知识总结
  17. 行摄无疆——李元大师谈风光摄影圆满结束
  18. Word文档在首尾添加字符
  19. FLstudio不能保存文件
  20. 关于thinkpad t/w/x 5/4/230的指纹安装的一点提示

热门文章

  1. 使用Python+PyTorch预测野外火灾!
  2. 操作系统实验3:进程运行轨迹的跟踪与统计
  3. 北风网web开发资深讲师李炎恢出品--ASP系列课程从入门到精通
  4. Android 修改浏览器默认主页及书签
  5. springboot集成PageHelper
  6. 【跃迁之路】【727天】程序员高效学习方法论探索系列(实验阶段484-2019.2.17)...
  7. 软件测试方法 -- 等价类边界值
  8. esxi时区设置 +8_Shopify篇:Goolge Analystic申请及设置
  9. 笑傲江湖java_笑傲江湖葵花劫_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]
  10. Netty 源码 — 线程模型的分析