linux命令:echo使用解读
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [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、显示普通字符串
?1 2 3 4 5 6 | [root@localhost ~] # echo "hello world" hello world [root@localhost ~] # echo hello world hello world #双引号可以省略,效果一致。(字符串的输出都是如此,下面一些实例也是可以省略双引号也能达到相同效果) |
2、显示变量
这里用到read命令(从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量)。
?1 2 3 4 | [root@localhost ~] # read name Michael Zhang [root@localhost ~] # echo "My name is $name" My name is Michael Zhang |
3、显示换行
?1 2 3 | [root@localhost ~] # echo -e "hello \nworld" hello world |
4、显示不换行
?1 2 3 4 5 | #!/bin/sh echo -e "OK! \c" # -e 开启转义 \c 不换行 echo "hello world" #结果如下 OK! hello world |
5、显示转义字符
?1 2 | [root@localhost ~] # echo "\"hello world\"" "hello world" |
6、重定向
结果输出到文件
?1 2 | echo "hello world" > my_file #将hello world输出到my_file文件 |
7、原样输出
用单引号可原样输出。
?1 2 3 4 | [root@localhost ~] # echo '$name\"' $name\" [root@localhost ~] # echo '$name' $name |
8、显示命令执行结果
?1 2 3 | #显示当前日期 [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)实例
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [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] # |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_16268979/article/details/109553410
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。