在讲Shell脚本之前,要先说一个我们之前学过的命令,echo命令。

echo命令是Linux中最基础的命令,也是很常用的命令,特别是在写Shell脚本的时候,可能会经常被用到,虽然echo命令非常基础,但是功能还算丰富。

1、echo命令的作用

  • 用于打印输出文本(字符串)。
  • 在脚本中echo命令常用于在显示器上显示一段文字,一般起到提示的作用。
  • 在Shell编程中,常常用echo命令,在终端下打印变量value的属性或者属性值。

2、echo命令的基本用法

(1)echo命令的格式

[root@localhost ~ ] # echo [选项] [输 出内容]

选项:

  • -e:支持反斜线控制的字符转换(具体看本文第3点)。
  • -n:取消输出后行末的换行符号(就是内容输出后不换行)。

(2)举例

  • 输出一个连续的字符串。
    [root@localhost ~]# echo 123456789
    123456789
  • 输出一个带有空格的字符串。

    需要给字符串加上双引号。
    [root@localhost ~]# echo "666 888"
    666 888
  • -n选项演示。
    [root@localhost ~]# echo -n "666 888"
    666 888[root@localhost ~]#

    在脚本中偶尔会用到。

注意:

如果字符串的最后是!,这个!后一定要加上一个空格,不然会报错。

如下图:

3、echo命令的-e选项用法

echo命令中如果使用了-e选项,则可以支持使用控制字符。控制字符如下:

  • \\:输出\本身。
  • \a:输出警告音。
  • \b:退格键,也就是向左删除键。
  • \c:取消输出行末的换行符。和-n选项一致。
  • \e:ESCAPE键。
  • \f:换页符。
  • \n:换行符。
  • \r:回车键。
  • \t:制表符,也就是Tab键。
  • \v:垂直制表符。
  • \0nnn:按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数。
  • \xhh:按照十六进制ASCII码表输出字符。其中hh是两位十六进制数。

(1)输出\,同时会在系统音中输出一声提示音。

[root@localhost ~ ] # echo -e "\\ \a"
\

注意:

如果觉得系统提示音很烦,可以编辑/etc/inputrc文件。

执行命令[root@localhost ~ ] # vim /etc/inputrc

编辑内容:把第二行的注释打开即可。

如下图所示:

修改保存文件,执行reboot命令重启系统即可。以后就不会在有系统提示音了。

(2)\b的用法,在b键左侧有\b,所以输出时只有ac

[root@localhost ~ ] # echo -e "ab\bc"
ac

(3)制表符\t和换行符\n的用法。

[root@localhost ~ ] # echo -e "a\tb\tc\nd\te\tf"
a b c
d e f

(4)演示八进制ASCII码输出字符。

[root@localhost ~ ] # echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146"
a b c
d e f

141是个八进制数,在ASCII码中代表小写的a,其他的以此类推。

(5)演示十六进制ASCII码输出字符。

[root@localhost ~ ] # echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a b c
d e f

4、echo命令一些特殊用法

(1)输出字符带有字体颜色

执行命令如下:

[root@localhost ~] # echo -e "\e[1;31m abcd \e[0m"

这条命令会把abcd按照红色输出。解释下这个命令:

  • \e[1是标准格式,代表颜色输出开始,\e[0m代表颜色输出结束。
  • 31m定义字体颜色是红色。echo能够识别的颜色如下:30m=黑色31m=红色32m= 绿色33m=黄色34m= 蓝色35m=洋红36m=青色37m=白色

命令结果如下图:

拓展,执行命令:

[root@localhost ~ ] echo -e "\e[1;31ma\e[0m""\e[1;33mb\e[0m""\e[1;34mc\e[0m""\e[1;36md\e[0m"

结果如下图所示:

(2)输出字符带有背景颜色

执行命令如下:

[root@localhost ~] # echo -e "\e[1;42m abcd \e[0m"

这条命令会给abcd加入一个绿色的背景。echo命令可以使用的背景颜色如下:40m= 黑色41m=红色42m=绿色43m=黄色44m=蓝色45m=洋红46m=青色47m=白色

命令结果如下图:

拓展,执行命令:

[root@localhost ~ ] echo -e "\e[1;41ma\e[0m""\e[1;43mb\e[0m""\e[1;44mc\e[0m""\e[1;46md\e[0m"

命令结果如下图:

注意:好像字符串不能同时添加字体颜色和背景颜色(我没有试出来)。

『忘了再学』Shell基础 — 3、echo命令的介绍与使用的更多相关文章

  1. 『忘了再学』Shell基础 — 8、管道符介绍

    我们之前已经有文章说过管道符了,今天这里再简单总结一下用法. 1.行提取命令grep grep命令的作用,是在指定的文件中,搜索符合条件的字符串. 命令格式: [root@localhost ~ ] ...

  2. 『忘了再学』Shell基础 — 10、Bash中的特殊符号(二)

    提示:本篇文章接上一篇文章,主要说说()小括号和{}大括号的区别与使用. 8.()小括号 ():用于一串命令执行时,()中的命令会在子Shell中运行.(和下面大括号一起说明) 9.{}大括号 {}: ...

  3. 『忘了再学』Shell基础 — 1、Shell的介绍

    目录 1.Shell的由来 2.Shell的两种执行指令方式 3.什么是Shell脚本 4.Shell 是一种脚本语言 1.Shell的由来 我们比较熟悉Windows系统的图形化界面,对于图形界面来 ...

  4. 『忘了再学』Shell基础 — 4、Bash基本功能(history命令)

    目录 1.history历史命令 2.设置命令历史记录的条数 3.清空历史命令 4.历史命令的调用 5.命令与文件的补全 在Linux系统中默认的Shell就是Bourne-AgainShell(简称 ...

  5. 『忘了再学』Shell基础 — 9、Bash中的特殊符号(一)

    目录 1.双单引号 2.双引号 3.$符号 4.反引号 5.$()符号 6.#符号 7.\符号 1.双单引号 '':单引号.在单引号中所有的特殊符号,如$和"`"(反引号)都没有特 ...

  6. 『忘了再学』Shell基础 — 2、Shell的作用与分类

    目录 1.Shell的作用 2.Shell的分类 1.Shell的作用 Shell除了能解释用户输入的命令,将它传递给内核,还可以: 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果. 在 ...

  7. 『忘了再学』Shell基础 — 27、AWK编程的介绍和基本使用

    目录 1.AWK介绍 (1)AWK概述 (2)printf格式化输出 (3)printf命令说明 2.AWK的基本使用 (1)AWK命令说明 (2)AWK命令使用 1.AWK介绍 (1)AWK概述 A ...

  8. 『忘了再学』Shell基础 — 24、Shell正则表达式的使用

    目录 1.正则表达式说明 2.基础正则表达式 3.练习 (1)准备工作 (2)*练习 (3).练习 (4)^和$练习 (5)[]练习 (6)[^]练习 (7)\{n\}练习 (8)\{n,\}练习 ( ...

  9. 『忘了再学』Shell基础 — 25、扩展正则表达式

    目录 1.扩展正则表达式说明 2.练习 (1)+和?练习 (2)|和()练习 3.注意(重点) 1.扩展正则表达式说明 熟悉正则表达式的童鞋应该很疑惑,在其他的语言中是没有扩展正则表达式说法的,在Sh ...

随机推荐

  1. Solution -「CF 1119F」Niyaz and Small Degrees

    \(\mathcal{Description}\)   Link.   给定一棵 \(n\) 个结点的树,边有边权,对于每个整数 \(x\in[0,n)\),求出最少的删边代价使得任意结点度数不超过 ...

  2. 痞子衡嵌入式:对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异. 近期有 i.MXRT 客户在集成 OTA SBL ...

  3. Redis 源码简洁剖析 15 - AOF

    AOF 是什么 AOF 持久化的实现 命令追加 AOF 文件的写入和同步 AOF 文件的载入和数据还原 AOF 重写 为什么需要重写 什么是重写 如何重写 AOF 后台重写 为什么需要后台重写 带来的 ...

  4. 2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级

    去年.NET Conf China 技术大会上,我给大家分享了主题<轻松玩转.NET大规模版本升级>,今天把具体分享的内容整理成一篇博客,供大家研究参考学习. 一.先说一下技术挑战和业务背 ...

  5. 企业如何建立一体化数据分析平台?还是得说说那几家BI工具

    近年来,BI工具和报表工具犹如一股春风,吹遍了大江南北,成为了众多企业的发展利器,受到了企业决策者的拥戴.同时,在企业信息化需求日益旺盛的市场里也孕育了不少BI工具与报表工具厂商.商业智能的应用在国外 ...

  6. windev的字符集选择设置及元素命名方法建议

    windev支持多语言,且支持整站翻译,同时支持最终用户的多语言选择,可以说多语言功能已经非常的全面和强大. windev原生支持英语.法语和葡萄牙语,在使用如中文等非拉丁字母语言时,需要在多个地方进 ...

  7. 安装python和pycharm,以及常见安装问题

    目录 安装python 输入第一个python程序 安装python文本编辑器pycharm 执行main.py文件出现的问题 python编码规范 python是当前很常用的一门语言了,和Java, ...

  8. 解决overlay2存储驱动的磁盘配额问题

    为啥要用overlay2 docker centos(内核3.10)上默认存储驱动是devicemapper 的loop-lvm模式,这种模式是用文件模拟块设备,不推荐生产使用direct lvm又不 ...

  9. C#源代码的组成

    引用 using  ...表达式  i=5.i>5 语句:int i=5: 快( block ):{ }

  10. C# 方法里面的默认参数

    最近有很多地方都用到了方法的默认参数,遂总结之. (一)先从原理说起 在C#中,一旦为某个参数分配了一个默认值,编译器就会向内部该参数应用定制一个attribute 即是(OptionalAttrib ...