[Linux服务器] linux命令:echo

954 0
Honkers 2025-3-6 14:35:01 | 显示全部楼层 |阅读模式

Shell中的echo命令类似于php中的echo命令,都是用于输出。Shell中另有一个输出命令为printf命令,我没有另写文章介绍该命令,大家可以在Shell printf 命令中查阅学习。

本文中的一系列实例用到的命令我都是在终端直接写的,输出也是输出在终端,这样方便学习和记录吧!其实也都可以放到脚本文件中执行。

一、语法

  1. echo [-neE] [arg ...]
复制代码

(1)含义
-n:表示输出字符串不换行
-e:表示对于转义字符按对应的方式进行处理(若不加-e ,那么在输出时转义字符会按照普通字符进行处理,并不会达到自己想要达到的目的。)
-E:禁用转义解释

转义字符含义
\b删除前一个字符
\n换行
\t水平制表符(tab)
\v垂直制表符(tab)
\c\c后面的字符将不会输出,输出完毕后也不会换行
\r光标移动到首行,不换行
\f换行,光标停在原处
\e删除后一个字符
\输出\
\0nnn输出八进制nnn代表的ASCII字符
\xHH输出十六进制数HH代表的ASCII字符
\a输出一个警告的声音

(2)实例

  1. [root@localhost my_shell]# echo "hello "
  2. hello
  3. [root@localhost my_shell]# echo -n "hello "
  4. hello [root@localhost my_shell]# echo "hello \b"
  5. hello \b
  6. [root@localhost my_shell]# echo -e "hello \b"
  7. hello
  8. [root@localhost my_shell]# echo -en "hello \b"
  9. hello[root@localhost my_shell]# echo -e "hello\tworld"
  10. hello world
  11. [root@localhost my_shell]# echo -e "hello\nworld"
  12. hello
  13. world
  14. [root@localhost my_shell]# echo -e "hello\vworld"
  15. hello
  16. world
  17. [root@localhost my_shell]# echo -e "hello\cworld"
  18. hello[root@localhost my_shell]# echo -e "hello\rworld"
  19. world
  20. [root@localhost my_shell]# echo -e "hello\aworld"
  21. helloworld
  22. [root@localhost my_shell]# echo -e "hello\cworld"
  23. hello[root@localhost my_shell]# echo -e "\ehelloworld"
  24. elloworld
  25. [root@localhost my_shell]# echo -e "hello\\world"
  26. hello\world
  27. [root@localhost my_shell]# echo -e "\x31"
  28. 1
  29. [root@localhost my_shell]# echo -e "\0123"
  30. S
复制代码

(3)具体用法
  上面介绍的主要是一些输出字符串相关的具体用法,下面详细例举一些echo命令的其他用法。
1、显示普通字符串

  1. [root@localhost ~]# echo "hello world"
  2. hello world
  3. [root@localhost ~]# echo hello world
  4. hello world
  5. #双引号可以省略,效果一致。(字符串的输出都是如此,下面一些实例也是可以省略双引号也能达到相同效果)
复制代码

2、显示变量
  这里用到read命令(从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量)

  1. [root@localhost ~]# read name
  2. Michael Zhang
  3. [root@localhost ~]# echo "My name is $name"
  4. My name is Michael Zhang
复制代码

3、显示换行

  1. [root@localhost ~]# echo -e "hello \nworld"
  2. hello
  3. world
复制代码

4、显示不换行

  1. #!/bin/sh
  2. echo -e "OK! \c" # -e 开启转义 \c 不换行
  3. echo "hello world"
  4. #结果如下
  5. OK! hello world
复制代码

5、显示转义字符

  1. [root@localhost ~]# echo ""hello world""
  2. "hello world"
复制代码

6、重定向
结果输出到文件

  1. echo "hello world" > my_file
  2. #将hello world输出到my_file文件
复制代码

7、原样输出
用单引号可原样输出。

  1. [root@localhost ~]# echo '$name"'
  2. $name"
  3. [root@localhost ~]# echo '$name'
  4. $name
复制代码

8、显示命令执行结果

  1. #显示当前日期
  2. [root@localhost ~]# echo `date`
  3. Sat Jan 2 23:12:39 CST 2021
复制代码

这里使用的是反引号`, 而不是单引号’。
实际上输出一些执行命令的结果就是这样用反引号。

二、echo的重定向

重定向是Shell中的一个重要内容,可以查看我的文章Linux中的重定向。
echo命令的重定向功能经常被用于清空文件内容(删除文件)时使用,具体在我的另一篇文章中介绍:Linux中清空文件的方式

(1)echo "content" > filename
将content覆盖到filename文件当中去,filename文件当中之前的内容不复存在了,实际上是修改了原文件的内容。

(2)echo "content" >> filename
将content追加到filename文件后,对filename文件之前的内容不修改,只进行增添,也叫追加重定向。

(3)实例

  1. [root@localhost my_shell]# touch test
  2. [root@localhost my_shell]# cat test
  3. [root@localhost my_shell]# ll
  4. total 4
  5. -rw-r--r-- 1 root root 175 Nov 6 17:46 del.sh
  6. -rw-r--r-- 1 root root 0 Nov 7 23:33 test
  7. [root@localhost my_shell]# echo "123456" > test
  8. [root@localhost my_shell]# cat test
  9. 123456
  10. [root@localhost my_shell]# echo "111111" > test
  11. [root@localhost my_shell]# cat test
  12. 111111
  13. [root@localhost my_shell]# echo "123456" >> test
  14. [root@localhost my_shell]# cat test
  15. 111111
  16. 123456
  17. [root@localhost my_shell]#
复制代码

越大气越成功,越努力越幸运。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行