echo

echo 命令是 Linux bash 和 C shell中最常用的内置命令之一,通常用于脚本语言和批处理文件,用于标准输出以及显示文本内容等。echo命令在生产环境脚本中还是使用的非常多的,很多时候都要查看脚本执行是否正常,以及脚本执行到哪里,都是通过echo命令来打印来定位 。

在写脚本之前,我们需要学习一下 Linux 的打印命令 echo。该命令格式如下:

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

选项:

  • -e:支持反斜线控制的字符转换
  • -n:取消输出后行末的换行符号(内容输出后不换行)

示例1:普通打印

[root@localhost ~] echo ivanlee
ivanlee
[root@localhost ~] echo 'ivanlee'
ivanlee
[root@localhost ~] echo "ivanlee"
ivanlee

示例2: -n选项

image-20220524103920606

取消换行符之后输出内容和新的输入框紧挨着

示例3: -e选项

控制字符 作用
\ 输出本身这个字符
a 输出警告音
b 退格键,也就是向左删除键
c 取消输出行末的换行符。和“-n”选项一致
e Esc键
f 换页符
n 换行符
r 回车键,光标移至行首,但不换行
t 插入 tab制表符,Tab键
v 垂直制表符
nnn 按照八进制 ASCII 码表输出字符。其中 0 为数字 0,nnn 是三位八进制数
xnn 按照十六进制 ASCH 码表输出字符。其中 hh 是两位十六进制数
  • echo -e "\ a" 输出斜杠本身,以及会听到“bo~”的一声警告音

    ivanlee[root@localhost ~] echo -e "\ a"
         
    
  • echo -e "ab/bc"会输出ac,因为b代表向左删除一个键

    [root@localhost ~] echo -e "abbc"
    ac
    [root@localhost ~] echo -e "123bb4567"
    14567
    
  • `echo -e "123456c" 换行

    [root@localhost ~] echo -e "1234456c"
    1234456[root@localhost ~]# 
    
  • echo -e "ivanelee"终止输出

    [root@localhost ~] echo -e "ivanelee"
    ivan
    
  • echo -e "ivannlee"换行输出

    [root@localhost ~] echo -e "ivannlee"
    ivan
    lee
    
  • echo -e r 使用 echo 命令输出 "r" 转义字符,表示使用 "r" 后面的字符覆盖 "r" 之前的同等长度的字符。

    [root@localhost ~] echo -e "12345r6789"  覆盖等长的长度!
    67895
    [root@localhost ~] echo -e "12345r56789"
    56789
    
  • echo -e t输出内容会成为表格的形式

    [root@localhost ~] echo -e "atbtcndtetfn" |
    a	b	c                                           |
    d	e	f                                           |
    ------------------------------------------------|-------------------- |
    [root@localhost ~] echo -e "141t142t143n144t145t146" |
    a	b	c                                                                 |
    d	e	f                                                                 |
    还是会输出上面的内容,不过是按照制ASCII码输出的                              |
    ---------------------------------------------------------------|------|
    [root@localhost ~] echo -e "x61tx62tx63nx64tx65tx66"|
    a	b	c                                                          |
    d	e	f                                                          |
    如果按照十六进制ASCII码同样可以输出                                 |
    
  • echo -e -v

    [root@localhost ~] echo -e "avbvcndvevf"
    a
     b
      c
    d
     e
      f
    

示例4:ls功能

  • echo * 会输出当下目录的所有文件和子目录,不过不会换行

    [root@localhost etc] echo *
    adjtime aliases aliases.db alternatives ambot-installing ambot-install-machine ambot-machine-id anacrontab asciidoc asound.conf audisp audit bash_completion.d bashrc binfmt.d centos-release centos-release.bak centos-release-upstream chkconfig.d cron.d cron.daily
    

示例5:打印内容中带有双引号

[root@localhost etc] echo "hello "world""
hello "world"

示例6:重定向到文件+时间表示法

[root@localhost ~] echo $(date)
Tue May 24 11:15:05 CST 2022
[root@localhost ~] echo $(date "+%Y-%m-%d %H:%M:%S")
2022-05-24 11:15:17
[root@localhost ~] echo $(date "+%Y-%m-%d %H:%M:%S") > time.txt  文件不存在时会自动创建文件
[root@localhost ~] cat time.txt 
2022-05-24 11:15:35

示例7:颜色输出

命令行方式echo -e "e[背景颜色;文字颜色;显示方式m字符串e[0m"

echo -e "33[41;37m ivanlee 33[0m", 其中41的位置代表底色, 37的位置是代表字的颜色

注:
1、字背景颜色和文字颜色之间是英文的“""”
2、文字颜色后面有个m
3、字符串前后可以没有空格,如果有的话,输出也是同样有空格

字体颜色 格式:echo -e "33[fontcolor;字符串内容33[0m"
背景着色 格式:echo -e "33[backcolor; 字符串内容33[0m"
同时设置字体和背景颜色 格式:echo -e "33[backcolor;fontcolor 字符串内容33[0m"

颜色具体内容:

      文字      背景
黑色:	30         40

红色:	31         41

绿色:	32         42

黄色:	33         43

蓝色:	34         44 

粉色:	35         45

青色:	36         46

白色:	37         47

灰色:	38         48

特殊情况:

      97(文字):比37更浅的白色

      90,92,93,94,96(文字):不同深浅的灰色

      91(文字):橙色

      95(文字):紫色

      文字为41-47时,文字颜色为灰色,背景颜色为31-37的颜色
最后面控制选项说明 
  33[0m 关闭所有属性
  33[1m 设置高亮度
  33[4m 下划线
  33[5m 闪烁
  33[7m 反显
  33[8m 消隐
  33[30m — 33[37m 设置前景色
  33[40m — 33[47m 设置背景色
  33[nA 光标上移n行
  33[nB 光标下移n行
  33[nC 光标右移n行
  33[nD 光标左移n行
  33[y;xH设置光标位置
  33[2J 清屏
  33[K 清除从光标到行尾的内容
  33[s 保存光标位置
  33[u 恢复光标位置
  33[?25l 隐藏光标
  33[?25h 显示光标
  • 无属性输出

    image-20220524113030181

  • 闪烁 一直闪烁

    image-20220524113454527

image-20220524123709534

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/ivanlee717/p/16305161.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!