• 『忘了再学』Shell基础 — 3、echo命令的介绍与使用


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

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

    1、echo命令的作用

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

    2、echo命令的基本用法

    (1)echo命令的格式

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

    选项:

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

    (2)举例

    • 输出一个连续的字符串。
      shell
      [root@localhost ~]# echo 123456789
      123456789
    • 输出一个带有空格的字符串。
      需要给字符串加上双引号。
      shell
      [root@localhost ~]# echo "666 888"
      666 888
    • -n选项演示。
      shell
      [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)输出\,同时会在系统音中输出一声提示音。

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

    注意:

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

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

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

    如下图所示:

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

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

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

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

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

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

    highlighter- swift
    [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码输出字符。

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

    4、echo命令一些特殊用法

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

    执行命令如下:

    shell
    [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=白色

    命令结果如下图:

    拓展,执行命令:

    shell
    [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)输出字符带有背景颜色

    执行命令如下:

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

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

    命令结果如下图:

    拓展,执行命令:

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

    命令结果如下图:

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


    __EOF__

  • 本文作者: 繁华似锦的博客
  • 本文链接: https://www.cnblogs.com/liuyuelinfighting/p/16055732.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    ES 数据迁移最佳实践
    022-第三代软件开发-QCustomPlot核心迁移
    CSAPP学习导航2015
    ZABBIX 6.4官方安装文档
    万物皆可集成系列:低代码对接Web Service接口
    23. 图论 - 图的由来和构成
    【Oracle】 instr函数与substr函数以及自制分割函数
    vue 中 style 里面使用 scoped + @import 引入 css 后 scoped 属性不生效导致全局作用域
    正版Adobe软件来了!Adobe全球唯一正版全家桶订阅只需0元/年
    事务的ACID特性
  • 原文地址:https://www.cnblogs.com/liuyuelinfighting/p/16055732.html