echo是linux中咱們常常寫shell腳本常常用到的命令,總結一些經常使用的命令,以便在shell腳本中更流利的書寫,方便記憶linux
格式一:
echo 輸入的內容
示例:
基本用法,直接輸出內容能夠加'',"",或者不加,也能夠是中文shell
[root@zhaocheng ~]# cat echo.sh #!/bin/bash echo hello echo hello xiaoming echo 'hello xiaoming' echo "hello xiaoming tongxue" echo "下載文件中,請稍等" [root@zhaocheng ~]# bash echo.sh hello hello xiaoming hello xiaoming hello xiaoming tongxue 下載文件中,請稍等
格式二:
echo -n 輸出的內容
echo -n 是表示不換行輸出
示例centos
#!/bin/bash echo -n hello echo -n hello xiaoming echo -n 'hello xiaoming' echo -n "hello xiaoming tongxue" echo -n "下載文件中,請稍等" [root@zhaocheng ~]# bash echo.sh hellohello xiaominghello xiaominghello xiaoming tongxue下載文件中,請稍等[root@zhaocheng ~]#
格式三
echo ls
echo "ls
"
當在使用咱們的腳本的時候可能會使用一些shell命令,可是直接使用echo ls,這確定當一個文本輸出,若是想輸出咱們的shell命令ls,獲得當前目錄,就須要添加``,可是這樣的輸出只會不按正常的列表輸出,若是想按格式輸出的話,須要添加「」引發來
示例bash
[root@zhaocheng ~]# cat echo.sh #!/bin/bash echo "`ifup eth0`" [root@zhaocheng ~]# bash echo.sh dhclient(920) is already running - exiting. This version of ISC DHCP is based on the release available on ftp.isc.org. Features have been added and other changes have been made to the base software release in order to make it work better with this distribution. Please report for this software via the CentOS Bugs Database: http://bugs.centos.org/ exiting. Determining IP information for eth0... failed.
格式四
echo "\t"
echo -e \t
能夠加-e,直接輸出轉義字符,也能夠不加-e,加「\t」,只針對命令,其餘的轉移字符,就須要添加-e操做了ide
ip route,列出路由表條目
route顯示本機路由表this
[root@zhaocheng ~]# cat echo.sh #!/bin/bash echo "`ip route`""\t""`route`" [root@zhaocheng ~]# cat echo.sh #!/bin/bash echo -e "`ip route`"\t"`route`"
執行效果都是同樣的阿里雲
[root@zhaocheng ~]# bash echo.sh default via 172.17.0.1 dev eth0 169.254.0.0/16 dev eth0 scope link metric 1002 172.17.0.0/20 dev eth0 proto kernel scope link src 172.17.0.8 \tKernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 0 0 0 eth0 link-local 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 172.17.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
經常使用的轉義字符
\b 至關於退格鍵,相似將前面的字符去掉
\c 不換行輸出,做用至關於echo -n
\n 換行,通常使用-e以後,輸出的內容想換行就可使用\n,通常寫腳本的時候會用到這個,渲染輸出的結果,或者添加點顏色換行
\f 表明與上一行結尾與下一行的開頭換行鏈接
\v 與\f同樣code
友情提示:通常轉移字符使用的都加-e,-e它是一個選項,這個選項包含了一些經常使用的轉義字符,其餘的建議都加-e,有的不支持「」
示例orm
格式五
echo -e \bip
\b,至關於退格鍵,將前面的字符刪除掉
可使用單引號或者雙引號均可以,注意須要加引號,否則覺得是普通字符
[root@zhaocheng ~]# echo -e '123\b456' 12456 [root@zhaocheng ~]# echo -e "123\b456" 12456 不加-e,不會識別到,因此通常須要加-e操做參數 [root@zhaocheng ~]# echo "123""\b""456" 123\b456 [root@zhaocheng ~]# echo "123"\b"456" 123b456
格式六
echo -e \c
通常加\c的話,只會輸出\c以前的字符,以後的不會輸出
[root@zhaocheng ~]# echo -e "shouji\cpingban" shouji[root@zhaocheng ~]# echo -e "shouji\c" shouji[root@zhaocheng ~]#
格式七
echo -e \n
通常加\n的話,表示換行輸出,這個能夠根據本身的腳本格式輸出一些本身的格式來
[root@zhaocheng ~]# echo -e "shouji\npingban\ndainnao\nshoubiao" shouji pingban dainnao shoubiao
格式八
echo -e \f
表明在上一行的結尾與下一行的開頭鏈接
[root@zhaocheng ~]# echo -e "12345\f6789\09876\f9809876\f3456789" 12345 67899876 9809876 3456789
格式九
echo -e \v
與\f是同樣的,上一行的結尾與上一行的開頭進行鏈接
[root@zhaocheng ~]# echo -e "12345\v6789\v9876\v9809876\v3456789" 12345 6789 9876 9809876 3456789
格式九
echo -e \
通常這個表明插入\自己,這個也能夠直接使用\來使用也同樣的效果
[root@zhaocheng ~]# echo -e "ghjk\\dehdh" ghjk\dehdh [root@zhaocheng ~]# echo -e "ghjk\dehdh" ghjk\dehdh
簡單示例
使用阿里雲的repo源
[root@zhaocheng ~]# cat yum.sh #!/bin/bash DIR=/etc/yum.repos.d/bak cd /etc/yum.repos.d/ [ -d $DIR ] || mkdir bak find /etc/yum.repos.d -name "*.repo" -exec mv {} bak \; &> /dev/null wget -O /etc/yum.repos.d/aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null echo -e "\033[49;32;5m 下載中\n[58%...]============================================================" echo -e "\033[49;32;5m[80%...]============================================================" yum clean all &> /dev/null yum makecache &> /dev/null echo "aliyun.repo Have been ready"