shell腳本之echo命令基礎用法(一)

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 \b
ip

\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"
相關文章
相關標籤/搜索