linux命令_echo

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 垂直制表符
\0nnn 按照八进制 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 "ab\bc"
    ac
    [root@localhost ~] echo -e "123\b\b4567"
    14567
    
  • `echo -e "123456\c" 换行

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

    [root@localhost ~] echo -e "ivan\elee"
    ivan
    
  • echo -e "ivan\nlee"换行输出

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

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

    [root@localhost ~] echo -e "a\tb\tc\nd\te\tf\n" |
    a	b	c                                           |
    d	e	f                                           |
    ------------------------------------------------|-------------------- |
    [root@localhost ~] echo -e "\0141\t\0142\t\0143\n\0144\t\0145\t\0146" |
    a	b	c                                                                 |
    d	e	f                                                                 |
    还是会输出上面的内容,不过是按照制ASCII码输出的                              |
    ---------------------------------------------------------------|------|
    [root@localhost ~] echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"|
    a	b	c                                                          |
    d	e	f                                                          |
    如果按照十六进制ASCII码同样可以输出                                 |
    
  • echo -e -v

    [root@localhost ~] echo -e "a\vb\vc\nd\ve\vf"
    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 "\033[41;37m ivanlee \033[0m", 其中41的位置代表底色, 37的位置是代表字的颜色

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

字体颜色 格式:echo -e "\033[fontcolor;字符串内容\033[0m"
背景着色 格式:echo -e "\033[backcolor; 字符串内容\033[0m"
同时设置字体和背景颜色 格式:echo -e "\033[backcolor;fontcolor 字符串内容\033[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的颜色
最后面控制选项说明 
  \033[0m 关闭所有属性
  \033[1m 设置高亮度
  \033[4m 下划线
  \033[5m 闪烁
  \033[7m 反显
  \033[8m 消隐
  \033[30m — \33[37m 设置前景色
  \033[40m — \33[47m 设置背景色
  \033[nA 光标上移n行
  \033[nB 光标下移n行
  \033[nC 光标右移n行
  \033[nD 光标左移n行
  \033[y;xH设置光标位置
  \033[2J 清屏
  \033[K 清除从光标到行尾的内容
  \033[s 保存光标位置
  \033[u 恢复光标位置
  \033[?25l 隐藏光标
  \033[?25h 显示光标
  • 无属性输出

    image-20220524113030181

  • 闪烁 一直闪烁

    image-20220524113454527

image-20220524123709534

posted @ 2022-05-24 12:41  ivanlee717  阅读(450)  评论(0编辑  收藏  举报