Linux echo命令详解

目录

第一章:介绍

1、echo 内容

2、echo -n

3、echo -e

第二章:转义的应用

1、主要转义符的应用

2、8进制和16进制的转义符

3、设置文本颜色的转义符

第三章:向文本添加内容 

1、覆盖文件

2、文件尾追加

第四章:常用命令

1、输出显示时间

2、输出文件

3、输出声明的参数变量


第一章:介绍

        echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。此外,也可以直接在文件中写入要写的内容。也可以用于脚本编程时显示某一个变量的值,或者直接输出指定的字符串。

        命令格式如下:
        echo 【选项】 【输出内容】

        共有三种格式

1、echo 内容

        详解:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。echo 后所内容有双引号、有单引号和不加单双引号 的含义是相同的,输出内容也相同

(1)只有双引号 echo  "内容"

 (2)只有单引号 echo  '内容'

  (3)双引号和单引号 都没有 echo  内容

   (3)双引号和单引号 混杂使用,会先匹配与第一组不相同的符号,若这组符号后续是连续相同的,则也会连续显示;但若不连续,则只显示最先匹配的符号。具体如下

        外单内双 echo  ' " 内容 " '

        外双内单 echo  " ' 内容 ' "

Linux echo命令详解_第1张图片

        外双内单再单 echo  " ' ' 内容 ' ' "

Linux echo命令详解_第2张图片

         外双内单再双 echo  " ' “ 内容 ” ' "

Linux echo命令详解_第3张图片

2、echo -n

        echo -n 内容

        表示输出之后不换行,直接显示新行的提示符

3、echo -e

        echo -e

        支持反斜线控制的字符转换,前面有斜线的字符将作为转义字符但是需要要有单引号或者双引号包含。

正常

Linux echo命令详解_第4张图片

错误

Linux echo命令详解_第5张图片

第二章:转义的应用

常用的转义字符:

转义字符 含义
\a  发出警告声
\b  删除前一个字符
\c  \c后面的字符将不再输出,同时输出完毕后内容也不换行
\f 换页符,光标停在原来的位置
\n 换行且光标移至行首
\r 回车符
\t 水平制表符,就是Tab键
\v 垂直制表符
\ 插入\字符
\e Esc键
\0nnn 按照八进制 ASCII 码表输出字符。其中 0 为数字 0,nnn 是三位八进制数
\xhh 按照十六进制 ASCH 码表输出字符。其中 hh 是两位十六进制数
\e[1;31m ouler \e[0m PS1: \e[1 是标准格式,代表颜色输出开始,\e[0m 代表颜色输出结束,31m 定义字体颜色是红色
033[31m 和 \033[0m ANSI控制码格式:\033[显示方式;前景色;背景色m

1、主要转义符的应用

(1)电脑发出滴的警鸣声

echo -e '\a123214'

 (2)删除 \b 前一个字符

echo -e '123\b24'

Linux echo命令详解_第6张图片

 (3) \c后面的字符将不再输出,并且同 echo -n 命令输出形式相同不换行。

echo -e '123\c24'

Linux echo命令详解_第7张图片

(4) \f 换页符,光标停在原来的位置。

echo -e '123\f24'

Linux echo命令详解_第8张图片

 将内容输入到文档中则为图中所示(less 是文本查看命令,可通过ctrl + z 跳出)

echo -e '123\f24' > text

 Linux echo命令详解_第9张图片

 (5)\n 换行且光标移至行首

echo -e '123\n123' 

Linux echo命令详解_第10张图片

 (6)\r 回车符, 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符:但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖

echo -e '123\r123' 

(7) \t Tab键

echo -e '123\t123' 

(8) \v 垂直制表符

echo -e '\v123\v23' 

Linux echo命令详解_第11张图片

 (9)\e Esc键  ,输出虽然没有了\e后的一个字符,但是文本中是存在的

echo -e '123\e23' 

2、8进制和16进制的转义符

(1)8进制ASCII 码表

        输出一个!,对应的10进制是33,8进制为 41,转义为\0041

echo -e '\0041' 

Linux echo命令详解_第12张图片

  (2)16进制ASCII 码表

          输出一个!,对应的10进制是33,16进制为 21,转义为\x21

echo -e '\x21' 

3、设置文本颜色的转义符

(1)介绍PS1

\e[<格式代码>m

         基本上是夹在 "\e["(转义开方括号)和 "m" 之间数字值。指定一个以上的格式代码(数字),则用分号将他们分开。

\e[A;B;Cm

        其中

        A 为格式控制,编号0~9;

        B 为字体颜色,编号30~37;

        C 为背景色,编号40~47。

        可通过 \e[0m 关闭颜色输出;

\e[A;B;Cm 内容 \e[Am 

(2) 介绍ANSI(大体类同PS1)

\033[<格式代码>m

        基本上是夹在 "\033["(转义开方括号)和 "m" 之间数字值。指定一个以上的格式代码(数字),则用分号将他们分开。 

\033[A;B;Cm

其中

        A 为格式控制,编号0~9;

        B 为字体颜色,编号30~37;

        C 为背景色,编号40~47。

        可通过 \033[0m 关闭颜色输出;

(3) 格式代码(\e[<格式代码>m 内容 \e[0m )或(\033[<格式代码>m 内容 \033[0m )

echo -e '\e[1mHELLO WORLD!\e[0m' 

代码十进制 作用
0 清除所有格式(常用在格式控制末尾,以免对后序字符串造成影响)
1 加粗,与格式2冲突
2 字体变暗,与格式1冲突
3 斜体
4 下划线
5 呼吸闪烁(但有的机器上没效果))
6 同上
7 反显(背景色当前景色,前景色当背景色)
8 隐形(字符仍然存在,可以选中,只是看不到)
9 删除线

 (4) 颜色代码(\e[<字体颜色代码>;<背景颜色代码>m 内容 \e[0m )或(\033[<字体颜色代码>;<背景颜色代码>m 内容 \033[0m )

echo -e '\e[31;42mHELLO WORLD!\e[0m' 

Linux echo命令详解_第13张图片

前景色代码 颜色 背景色代码
30 黑色,注意和控制台的背景色稍有区别 40
31 红色 41
32 绿色 42
33 黄色 43
34 蓝色 44
35 紫色 45
36 青色 46
37 白色,但实际上是亮灰色 47

  (5) 光标操作(\e<光标代码> )或(\033<光标代码> )

echo -e '\e[?25l'

Linux echo命令详解_第14张图片

指令字符串 作用
c 清除屏幕,不可恢复(相当于clear命令)
[y;xH] 将光标移至第x列第y行处
[nA 将光标上移n
[nB 将光标下移n
[nC 将光标右移n
[nD 将光标左移n
[K 清除从光标(包括)到行末的内容
[s 记录光标的位置(只能记一次)
[u 恢复光标的位置
[?25l 隐藏光标
[?25h 显示光标

第三章:向文本添加内容 

1、覆盖文件

        echo “内容”> 文件名:将想要的内容(支持文章所述的所有echo输出格式)覆盖到对应的文件当中去,文件中之前的内容将不复存在。实际上是修改原文件的内容, 且文件在系统中不存在时,此命令会先创建新文件再覆盖。

echo '21345' > text.txt

 查看文本可通过 less、vi、vim、cat 和 tail  等以上命令

Linux echo命令详解_第15张图片

2、文件尾追加

        echo “内容”>> 文件名:将输入的内容(支持文章所述的所有echo输出格式)在文件最后一行后插入,对文件之前的内容不修改,只进行增添,也叫追加重定向

echo '21345' >> text.txt

 查看文本可通过 less、vi、vim、cat 和 tail  等以上命令 

Linux echo命令详解_第16张图片

第四章:常用命令

1、输出显示时间

(1)输出当前时间

echo $(date)

Linux echo命令详解_第17张图片

此时使用的 `  是~符号 按键所在,而非单引号

echo `date`

(2)输出当前年月日

echo $(date +%F)

(3)输出当前时间(时分)

echo $(date +%R)

(4)输出当前时间(时分秒)

echo $(date +%T)

(5) 输出星期

echo $(date +%A)

(6)组合输出日期时间

        输出年月日

echo $(date +%Y/%m/%d)

         输出时分秒

echo $(date +%H:%M:%S)

        输出年月日时分秒 %n 空格 %F年月日 %T时分秒

echo $(date +%F%n%T)

2、输出文件

(1)输出所有的文件和文件夹(ls命令的替代)

echo *

Linux echo命令详解_第18张图片

(2)输出包含指定格式的文件和文件夹(类似 find命令)

        例如 以 .cfg 结尾

echo *.cfg

        例如 文件名中包含 con 的

echo *con*

        例如 以 te 开头

echo te*

3、输出声明的参数变量

(1)输出一个声明的变量值 注意变量赋值时“=”前后不能有空格

a=100
echo $a

Linux echo命令详解_第19张图片

(2)原样输出字符串,不取变量,使用单引号或来实现,双引号还是会输出变量值

a=100
echo '$a'

Linux echo命令详解_第20张图片

(3)根据指定内容截取变量的输出内容

从最后倒数开始,最短的匹配部分(用%),后面斜杠的地方被删除

i=123/456/789/000
echo ${i%/*}

从最后倒数开始,最长的匹配部分(用%%),后面斜杠的地方都被删除

echo ${i%%/*}

从头开始到最短的匹配部分(用#),前面斜杠的地方被删除

 echo ${i#*/}

从头开始到最长的匹配部分(用##),前面斜杠的地方被删除

echo ${i##*/}

(4)根据指定位置截取变量的输出内容

        声明变量,输出变量从第二位到截至的所有信息(同string,开始位置为0,第二位为1)

a=123456789
echo ${a:1}

         输出变量从第二位到第4位的信息( ${a:b:c}),其中a 为声明的变量,b为开始位数,c为显示的字符数。

echo ${a:1:2}

         查看声明变量的长度

echo ${#a}

你可能感兴趣的:(Linux,服务器,linux,运维,服务器)