echo命令使用说明

echo命令使用说明

1、命令概述

echo命令用于在终端设备上输出字符串或变量提取后的值,Linux系统中最常用的几个命令之一,操作简单。使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。

2、命令语法

echo【选项】 【字符串】

3、命令选项

-n 不输出结尾的换行符

-e “\a” 发出警告音

-e “\b” 删除前面的一个字符

-e “\c” 结尾不加换行符,不换行输出,若 "\c" 后面不存在字符,作用相当于 echo -n;若 "\c" 后面存在字符,后面的字符不会输出

-e “\f” 换行,但是换行后的新行开头位置连接着上一行的行尾

-e “\n” 换行,光标移至行首

-e “\r” 表示 "\r" 后面的字符覆盖 "\r" 前面的同等长度的字符(从首字符开始覆盖)

-e "\t" 插入 tab

-e "\v" 与 "\f" 相同

-e "\\" 插入 \ 字符

-E 禁止反斜杠转移,与-e参数功能相反

4、命令示例

4.1 输出一段字符串

1 [root@localhost ~]# echo "hello world!" #输出字符串

2 hello world!

3 [root@localhost ~]# echo '"hello world!"' #输出字符串,带 "" 双引号

4 "hello world!"

4.2 输出变量提取后的值

1 [root@localhost ~]# echo $PATH

2 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

3 [root@localhost ~]# echo $PS1

4 [\u@\h \W]\$

5 [root@localhost ~]# echo $LANG

6 zh_CN.UTF-8

7 [root@localhost ~]#

4.3 对内容进行转义,不让$符号的提取变量值功能生效:

1 [root@localhost ~]# echo \$PATH1

2 $PATH1

3 [root@localhost ~]# echo \$PS1

4 $PS1

5 [root@localhost ~]# echo \$LANG

6 $LANG

7 [root@localhost ~]#

4.4 结合输出重定向符,将字符串信息导入文件中:

1 [root@localhost ~]# echo "abcd" > a.txt #若 a.txt 不存在,直接创建;若 a.txt 存在,直接覆盖原内容。

2

3 [root@localhost ~]# echo "abcd" >> b.txt #若 b.txt 不存在,直接创建;若 b.txt 存在,追加到原内容最后。

4.5 使用 ` ` 反引号符(键盘左上角),可执行命令,并输出其结果到终端:

[root@localhost ~]# echo `date`

Wed Oct 16 11:29:35 CST 2019

[root@localhost ~]# echo `ifconfig`

ens192: flags=4163 mtu 1500 inet 183.232.197.8 netmask 255.255.255.224 broadcast 183.232.197.31 inet6 fe80::ed01:ae56:a39:82b8 prefixlen 64 scopeid 0x20 ether 00:50:56:82:b1:44 txqueuelen 1000 (Ethernet) RX packets 989075 bytes 379924582 (362.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 784756 bytes 82511244 (78.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (Local Loopback) RX packets 96 bytes 8320 (8.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 96 bytes 8320 (8.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@localhost ~]#

以上可见 ifconfig 命令执行输出结果文本格式改变,不便于读写,如果想要按照 ifconfig 命令原格式输出,可加 " " 双引号:

1 [root@localhost ~]# echo "`ifconfig`"

2 ens192: flags=4163 mtu 1500

3 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.1

4 inet6 fe80::ed01:ae56:a39:82b8 prefixlen 64 scopeid 0x20

5 ether 00:50:00:82:00:44 txqueuelen 1000 (Ethernet)

6 RX packets 989254 bytes 379937326 (362.3 MiB)

7 RX errors 0 dropped 0 overruns 0 frame 0

8 TX packets 784902 bytes 82522758 (78.6 MiB)

9 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

10

11 lo: flags=73 mtu 65536

12 inet 127.0.0.1 netmask 255.0.0.0

13 inet6 ::1 prefixlen 128 scopeid 0x10

14 loop txqueuelen 1 (Local Loopback)

15 RX packets 96 bytes 8320 (8.1 KiB)

16 RX errors 0 dropped 0 overruns 0 frame 0

17 TX packets 96 bytes 8320 (8.1 KiB)

18 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

19 [root@localhost ~]#

4.6 -e “\n” 换行,光标移至行首,输出带有换行符的内容:

1 [root@localhost ~]# echo -e "a\nb\nc\nd"

2 a

3 b

4 c

5 d

6 [root@localhost ~]#

4.7 -e “\b” 删除前面的一个字符,输出信息中删除 \b 前面的字符(\b 后面还有字符才能执行):

1 [root@localhost ~]# echo -e "1234567\b" #\b 后面没有字符,所以不执行

2 1234567

3 [root@localhost ~]# echo -e "123\b4567" #\b 后面有字符,删除 \b 前面的字符3

4 124567

5 [root@localhost ~]# echo -e "123456\b7" #\b 后面有字符,删除 \b 前面的字符6

6 123457

7 [root@localhost ~]#

如果要删除多个字符,可使用\b\b、\b\b\b,以此类推,注意 \b 的数量只能小于等于后面的字符数和前面的字符数:

1 [root@localhost ~]# echo -e "123456\b\b789"

2 1234789

3 [root@localhost ~]# echo -e "123456\b\b\b789"

4 123789

5 [root@localhost ~]# echo -e "123456\b\b\b\b789" #\b 的数量大于后面的字符数,命令规则改变。

6 127896

7 [root@localhost ~]# echo -e "12\b3456\b\b789"

8 134789

9 [root@localhost ~]#

4.8 -n 不输出结尾的换行符,不换行输出:

1 [root@localhost ~]# echo "hello world"

2 hello world

3 [root@localhost ~]# echo -n "hello world"

4 hello world[root@localhost ~]# #没有换行,直接输出

5 [root@localhost ~]# echo "hello world" ; echo "hello world"

6 hello world

7 hello world

8 [root@localhost ~]# echo -n "hello world" ; echo "hello world"

9 hello worldhello world #没有换行,直接输出

10 [root@localhost ~]#

4.9 -e "\t" 插入 tab键:

1 [root@localhost ~]# echo -e "01234\t56789"

2 01234 56789 #中间有个 tab键

3 [root@localhost ~]#

4.10 -c 不换行输出,若 "\c" 后面不存在字符,作用相当于 echo -n;若 "\c" 后面存在字符,后面的字符不会输出:

1 [root@localhost ~]# echo -e "123\c"

2 123[root@localhost ~]#

3 [root@localhost ~]# echo -n "123"

4 123[root@localhost ~]#

5 [root@localhost ~]# echo -e "123\c456"

6 123[root@localhost ~]#

7 [root@localhost ~]#

4.11 -e “\f” 换行,但是换行后的新行开头位置连接着上一行的行尾:

1 [root@localhost ~]# echo -e "123\f4567"

2 123

3 4567

4 [root@localhost ~]# echo -e "123\f4567\fabcd"

5 123

6 4567

7 abcd

8 [root@localhost ~]#

4.12 -e “\r” 表示 "\r" 后面的字符覆盖 "\r" 前面的同等长度的字符(从首字符开始覆盖)

1 [root@localhost ~]# echo -e "abcdefg\r123"

2 123defg

3 [root@localhost ~]# echo -e "abc\r123"

4 123

5 [root@localhost ~]# echo -e "abcdefg\r12345"

6 12345fg

7 [root@localhost ~]# echo -e "abcdefg\r123456789"

8 123456789

9 [root@localhost ~]#

4.13 -e "\\" 插入 \ 字符:

1 [root@localhost ~]# echo -e "abc\\123"

2 abc\123

3 [root@localhost ~]#

4.14 改变输出字符串的颜色,改变输出字符串的背景色:

命令格式:echo -e "\033[F;BmTEST\033[0m",以 \033[ 开始,以 \033[0m 结束,m 在颜色设置后,可以单独改变字符串颜色或者背景色,也可以都改变;字符串颜色和背景色中间用 ; 隔开,不分前后。

“F“为字体颜色,编号为30-37,“B”为背景颜色,编号为40-47; F B30 40 黑色31 41 红色32 42 绿色33 43 黄色34 44 蓝色35 45 紫红色36 46 青蓝色37 47 白色

以上颜色设置都属于ANSI控制码;ANSI控制码中不仅有控制颜色的,还有一条提供其他功能的控制码常用的ANSI控制码如下:\033[0m 关闭所有属性,也就是此控制码前面的控制码将会失效,此控制码中的0可以互联\033[1m 设置输出字符串高亮度显示\033[4m 设置输出字符串有下划线\033[5m 设置输出字符串闪烁\033[7m 设置输出字符串返显,撞色显示,显示位白底黑字,或者黑底白字\033[8m 设置输出字符串消隐,字符颜色将会与背景颜色相同\033[30-37m 设置输出字符串颜色\033[40-47m 设置输出背景颜色\033[k 清除从光标到行尾的内容

注意:多个控制码之间用 ; 分号隔开。

相关

星露谷物语农场排名
365直播网APP下载

星露谷物语农场排名

📅 10-15 👁️ 4331
有哪些软件可以打广告-APP植入广告
beat365英超欧冠平台

有哪些软件可以打广告-APP植入广告

📅 10-09 👁️ 1431
彝族火把节
365直播网APP下载

彝族火把节

📅 10-03 👁️ 1421