Shell中常用的引號

Shell之引號

Shell中經常會使用到單引號、雙引號、反引號(鍵盤中Tab鍵上方的按鍵)、反斜線(轉換某些Shell元字符的含義)。如我們有時希望echo命令輸出的字符中就包含$符號本身,但一般情況下,Shell會將$視爲取變量值,像這樣的情況我們需要使用某些功能來屏蔽$符號本身的特殊含義,使其還原字面意義。

1. 反斜線

反斜線可以將緊隨其後的單個字符視爲字面意義上的字符,如*Shell中代表任意字符,在查找時經常會使用*來查找多個匹配的文件,然而有可能你需要找的就是*字符本身,此時,\*將會把*作爲字母意義上的普通字符。

另外,如果在命令的末尾使用\回車後,\可以將回車的命令提交功能屏蔽,從而將回車認爲是換行繼續輸入命令,實現命令的多行輸入功能。

[root@centos7 ~]# echo *                        #顯示當前目錄的所有文件列表

anaconda-ks.cfginstall.log install.log.syslog

[root@centos7 ~]# echo \*                       #顯示*字符

*

[root@centos7 ~]# echo \>                       #顯示>符號

[root@centos7 ~]# find / \                      #換行輸入多行命令

> -name"test.txt" \

> -type f\

> -size+5M

    2. 單引號

單引號可以將它中間的所有任意字符還原爲字面意義,實現屏蔽Shell元字符的功能。注意,不可以在兩個單引號中間單獨插入一個單引號,單引號必須成對出現。

[root@centos7 ~]# echo '$HOME'                  #單引號將屏蔽$的特殊功能

$HOME

[root@centos7 ~]# echo ’test\’                  #默認\爲轉義換行,這裏也被屏蔽

test\


    3. 雙引號

雙引號類似於單引號,但其不會屏蔽 `\$ 這樣的元字符含義,如果需要屏蔽這些字符含義,必須前置一個\符號,其他字符的功能將被屏蔽(包括單引號)。也就是說,兩個雙引號之間的單引號不必成對出現。

[root@centos7 ~]# echo "This's book."

This's book.

[root@centos7 ~]# echo "$HOME"

/root

[root@centos7 ~]# echo "\$HOME"

$HOME


    4. 反引號

Shell中使用反引號進行命令替換,命令替換使Shell可以將命令字符替換爲命令執行結果的輸出內容。同樣的功能也可以使用$()來實現。

[root@centos7 ~]# echo "Today is `date +%D`"

Today is 02/09/13

[root@centos7 ~]# echo "Today is $(date +%D)"

Today is 02/09/13

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章