Linux 基础教程 47-echo详细讲解

  • Linux 基础教程 47-echo详细讲解已关闭评论
  • 211 次浏览
  • A+
所属分类:linux技术
摘要

    echo命令是Linux中最基础和最常用的命令,特别是在Shell脚本经常用来打印输出调试信息等,功能比较丰富,现来总结一下,方便后续查看。

    echo命令是Linux中最基础和最常用的命令,特别是在Shell脚本经常用来打印输出调试信息等,功能比较丰富,现来总结一下,方便后续查看。

1.基本语法

echo [参数] 字符串 

    主要参数解释如下所示:

参数 功能
-e 激活转义字符
-n 输出不进行换行
  • 转义符详细解释如下所示:
转义符 含义
a 发出警告声
b 转义后相当于退格键(Backspace),前提是b后面存在字符
c 不进行换行,若后面有字符也不输出,若没有与echo -n等效
n 输出换行
f 换行,但换行后新行的开头位置连接着上一行的行尾
v 与f相同
r 光标移到行首,但不换行,相当于使用r后面的字符覆盖r之前同等长度的字符
t 插入TAB符
插入 字符

    使用选项-e参数后,除了可以输出转义字符,还可以输出彩色的字符和带有彩色背景的字符。示例如下所示:

echo -e "33[43;31m Surpass 33[0m" 
  • 33[43;31m和33[0m:专业名词叫做ANSI控制码,33[表示开始输出设定颜色的字符,33[0m表示结束输出设定的字符
  • 43;表示输出字符的背景颜色
  • 31表示输出字符的字体颜色

    ASNI控制码不仅可以控制颜色的输出,还有其他一些功能的控制码,如下所示:

ANSI控制码 功能
33[0m 关闭所有属性 ,也就是说此控制码前面的控制码将会失效,此控制码中的0可以省略
33[1m 设置高亮度
33[4m 添加下划线
33[5m 闪烁
33[7m 反显 ,撞色显示,显示为白底黑字,或者显示为黑底白字
33[8m 消隐 ,字符颜色将会与背景颜色相同
33[30m — 33[37m 设置字符字体颜色
33[40m — 33[47m 设置字符背景颜色
  • 常用字符字体颜色如下所示:
数字 颜色 数字 颜色
30 黑色 31 红色
32 绿色 33 黄色
34 蓝色 35 紫色
36 浅蓝色 37 灰色
  • 常用字符背景颜色如下所示:
数字 颜色 数字 颜色
40 黑色 41 红色
42 绿色 43 黄色
44 蓝色 45 紫色
46 浅蓝色 47 灰色

2.常用示例

  • 1、-n输出不换行
[root@Surpass ~]# echo -n "Surpass" Surpass[root@Surpass ~]# 
  • 2、b删除前一个字符
[root@Surpass ~]# echo -e "Sburpass" urpass [root@Surpass ~]# echo -e "Surbbbpass" pass 

bbb:表示删除前面三个字符

  • 3、c输出不换行,但当c后存在字符时,其后面的字符将不会输出,若c后面没有字符时,功能与echo -n等效
[root@Surpass ~]# echo -e "Surpassc" Surpass[root@Surpass ~]# echo -e "Surcpass" Sur[root@Surpass ~]# 
  • 4、n表示输出换行
[root@Surpass ~]# echo -e "I love nSurpass" I love  Surpass 
  • 5、f,换行,但新行的行首连接前一行的行尾
[root@Surpass ~]# echo -e "I love fSurpass" I love         Surpass [root@Surpass ~]# echo -e "I flove fSurpass" I    love         Surpass 
  • 6、r相当于r后面的字符覆盖r之前同等长度的字符
[root@Surpass ~]# echo -e "I love Surpassrdiana" dianae Surpass [root@Surpass ~]# echo -e "Surpa ssrdiana" diana ss 
  • 7、t插入TAB分隔符
[root@Surpass ~]# echo -e "Surpasstttdiana" Surpass			diana 
  • 8、输出
[root@Surpass ~]# echo -e "Surpass \ love \ Diana" Surpass  love  Diana 
  • 9、输出同时带有字体和背景颜色的字符
    Linux 基础教程 47-echo详细讲解

3.脚本封装示例

    根据今天的笔记,封装一个打印输出日志记录脚本,如下所示:

#!/bin/bash  function printMessage(){  dt=$(date '+%F %T')  type=$([ -z "$1" ] && echo "INFO" || echo "$1" | tr [:lower:] [:upper:])  message=$([ -z "$2" ] && echo "NONE" || echo "$2")   if [ "${type}" == "INFO" ]    then       echo -e "33[32m ${dt} ${type} ${message}33[0m"  elif [ "${type}" == "WARNING" ]     then       echo -e "33[33m ${dt} ${type} ${message}33[0m"  elif [ "${type}" == "ERROR" ]     then      echo -e "33[31m ${dt} ${type} ${message}33[0m"  else      echo -e "33[34m ${dt} ${type} or ${message} error 33[0m"  fi  }   function main(){  printMessage info "I love Surpass"  printMessage WARNING "I love Surpass"  printMessage errOR  "I love Surpass"  printMessage Test "I love Surpass" }  main 

    最终效果如下所示:
Linux 基础教程 47-echo详细讲解

原文地址:https://www.jianshu.com/p/6dbb04e56e60

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
Linux 基础教程 47-echo详细讲解