Shell中的echo命令类似于php中的echo命令,都是用于输出。Shell中另有一个输出命令为printf命令,我没有另写文章介绍该命令,大家可以在Shell printf 命令中查阅学习。
本文中的一系列实例用到的命令我都是在终端直接写的,输出也是输出在终端,这样方便学习和记录吧!其实也都可以放到脚本文件中执行。
一、语法
(1)含义 -n:表示输出字符串不换行 -e:表示对于转义字符按对应的方式进行处理(若不加-e ,那么在输出时转义字符会按照普通字符进行处理,并不会达到自己想要达到的目的。) -E:禁用转义解释
| 转义字符 | 含义 |
|---|
| \b | 删除前一个字符 | | \n | 换行 | | \t | 水平制表符(tab) | | \v | 垂直制表符(tab) | | \c | \c后面的字符将不会输出,输出完毕后也不会换行 | | \r | 光标移动到首行,不换行 | | \f | 换行,光标停在原处 | | \e | 删除后一个字符 | | \ | 输出\ | | \0nnn | 输出八进制nnn代表的ASCII字符 | | \xHH | 输出十六进制数HH代表的ASCII字符 | | \a | 输出一个警告的声音 |
(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]#
复制代码
越大气越成功,越努力越幸运。 |