目錄
- 一、語法
- 二、echo的重定向
- 總結(jié)
Shell中的echo命令類似于php中的echo命令,都是用于輸出。Shell中另有一個(gè)輸出命令為printf命令,大家可以在Shell printf 命令中查閱學(xué)習(xí)。
本文中的一系列實(shí)例用到的命令我都是在終端直接寫的,輸出也是輸出在終端,這樣方便學(xué)習(xí)和記錄吧!其實(shí)也都可以放到腳本文件中執(zhí)行。
一、語法
echo [-neE] [arg ...]
(1)含義
-n:
表示輸出字符串不換行-e:
表示對于轉(zhuǎn)義字符按對應(yīng)的方式進(jìn)行處理(若不加-e ,那么在輸出時(shí)轉(zhuǎn)義字符會(huì)按照普通字符進(jìn)行處理,并不會(huì)達(dá)到自己想要達(dá)到的目的。)-E:
禁用轉(zhuǎn)義解釋
轉(zhuǎn)義字符 | 含義 |
---|---|
\b | 刪除前一個(gè)字符 |
\n | 換行 |
\t | 水平制表符(tab) |
\v | 垂直制表符(tab) |
\c | \c后面的字符將不會(huì)輸出,輸出完畢后也不會(huì)換行 |
\r | 光標(biāo)移動(dòng)到首行,不換行 |
\f | 換行,光標(biāo)停在原處 |
\e | 刪除后一個(gè)字符 |
\ | 輸出\ |
\0nnn | 輸出八進(jìn)制nnn代表的ASCII字符 |
\xHH | 輸出十六進(jìn)制數(shù)HH代表的ASCII字符 |
\a | 輸出一個(gè)警告的聲音 |
(2)實(shí)例
[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)具體用法
上面介紹的主要是一些輸出字符串相關(guān)的具體用法,下面詳細(xì)例舉一些echo命令的其他用法。
1、顯示普通字符串
[root@localhost ~]# echo "hello world" hello world [root@localhost ~]# echo hello world hello world #雙引號(hào)可以省略,效果一致。(字符串的輸出都是如此,下面一些實(shí)例也是可以省略雙引號(hào)也能達(dá)到相同效果)
2、顯示變量
這里用到read命令(從標(biāo)準(zhǔn)輸入中讀取一行,并把輸入行的每個(gè)字段的值指定給 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 開啟轉(zhuǎn)義 \c 不換行 echo "hello world" #結(jié)果如下 OK! hello world
5、顯示轉(zhuǎn)義字符
[root@localhost ~]# echo "\"hello world\"" "hello world"
6、重定向
結(jié)果輸出到文件
echo "hello world" > my_file #將hello world輸出到my_file文件
7、原樣輸出
用單引號(hào)可原樣輸出。
[root@localhost ~]# echo '$name\"' $name\" [root@localhost ~]# echo '$name' $name
8、顯示命令執(zhí)行結(jié)果
#顯示當(dāng)前日期 [root@localhost ~]# echo `date` Sat Jan 2 23:12:39 CST 2021
這里使用的是反引號(hào)`, 而不是單引號(hào)’。
實(shí)際上輸出一些執(zhí)行命令的結(jié)果就是這樣用反引號(hào)。
二、echo的重定向
重定向是Shell中的一個(gè)重要內(nèi)容,可以查看我的文章Linux中的重定向。
echo命令的重定向功能經(jīng)常被用于清空文件內(nèi)容(刪除文件)時(shí)使用,具體在我的另一篇文章中介紹:Linux中清空文件的方式
(1)echo "content" > filename
將content覆蓋到filename文件當(dāng)中去,filename文件當(dāng)中之前的內(nèi)容不復(fù)存在了,實(shí)際上是修改了原文件的內(nèi)容。
(2)echo "content" >> filename
將content追加到filename文件后,對filename文件之前的內(nèi)容不修改,只進(jìn)行增添,也叫追加重定向。
(3)實(shí)例
[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]#
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。