目录
- 一、语法
- 二、echo的重定向
- 总结
Shell中的echo命令类似于php中的echo命令,都是用于输出。Shell中另有一个输出命令为printf命令,大家可以在Shell printf 命令中查阅学习。
本文中的一系列实例用到的命令我都是在终端直接写的,输出也是输出在终端,这样方便学习和记录吧!其实也都可以放到脚本文件中执行。
一、语法
echo [-neE] [arg …]
(1)含义
- -n:表示输出字符串不换行
- -e:表示对于转义字符按对应的方式进行处理(若不加-e ,那么在输出时转义字符会按照普通字符进行处理,并不会达到自己想要达到的目的。)
- -E:禁用转义解释
(2)实例
[root@localhost my_shell]# echo \”hello \”
hello
[root@localhost my_shell]# echo -n \”hello \”
hello [root@localhost my_shell]# echo \”hello \\b\”
hello \\b
[root@localhost my_shell]# echo -e \”hello \\b\”
hello
[root@localhost my_shell]# echo -en \”hello \\b\”
hello[root@localhost my_shell]# echo -e \”hello\\tworld\”
hello world
[root@localhost my_shell]# echo -e \”hello\\nworld\”
hello
world
[root@localhost my_shell]# echo -e \”hello\\vworld\”
hello
world
[root@localhost my_shell]# echo -e \”hello\\cworld\”
hello[root@localhost my_shell]# echo -e \”hello\\rworld\”
world
[root@localhost my_shell]# echo -e \”hello\\aworld\”
helloworld
[root@localhost my_shell]# echo -e \”hello\\cworld\”
hello[root@localhost my_shell]# echo -e \”\\ehelloworld\”
elloworld
[root@localhost my_shell]# echo -e \”hello\\\\world\”
hello\\world
[root@localhost my_shell]# echo -e \”\\x31\”
1
[root@localhost my_shell]# echo -e \”\\0123\”
S
(3)具体用法
上面介绍的主要是一些输出字符串相关的具体用法,下面详细例举一些echo命令的其他用法。
1、显示普通字符串
[root@localhost ~]# echo \”hello world\”
hello world
[root@localhost ~]# echo hello world
hello world
#双引号可以省略,效果一致。(字符串的输出都是如此,下面一些实例也是可以省略双引号也能达到相同效果)
2、显示变量
这里用到read命令(从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量)。
[root@localhost ~]# read name
Michael Zhang
[root@localhost ~]# echo \”My name is $name\”
My name is Michael Zhang
3、显示换行
[root@localhost ~]# echo -e \”hello \\nworld\”
hello
world
4、显示不换行
#!/bin/sh
echo -e \”OK! \\c\” # -e 开启转义 \\c 不换行
echo \”hello world\”
#结果如下
OK! hello world
5、显示转义字符
[root@localhost ~]# echo \”\\\”hello world\\\”\”
\”hello world\”
6、重定向
结果输出到文件
echo \”hello world\” > my_file
#将hello world输出到my_file文件
7、原样输出
用单引号可原样输出。
[root@localhost ~]# echo \’$name\\\”\’
$name\\\”
[root@localhost ~]# echo \’$name\’
$name
8、显示命令执行结果
#显示当前日期
[root@localhost ~]# echo `date`
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)实例
[root@localhost my_shell]# touch test
[root@localhost my_shell]# cat test
[root@localhost my_shell]# ll
total 4
-rw-r–r– 1 root root 175 Nov 6 17:46 del.sh
-rw-r–r– 1 root root 0 Nov 7 23:33 test
[root@localhost my_shell]# echo \”123456\” > test
[root@localhost my_shell]# cat test
123456
[root@localhost my_shell]# echo \”111111\” > test
[root@localhost my_shell]# cat test
111111
[root@localhost my_shell]# echo \”123456\” >> test
[root@localhost my_shell]# cat test
111111
123456
[root@localhost my_shell]#
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。