Shell之引號centos
在Shell中常常會使用到單引號、雙引號、反引號(鍵盤中Tab鍵上方的按鍵)、反斜線(轉換某些Shell元字符的含義)。如咱們有時但願echo命令輸出的字符中就包含$符號自己,但通常狀況下,Shell會將$視爲取變量值,像這樣的狀況咱們須要使用某些功能來屏蔽$符號自己的特殊含義,使其還原字面意義。
ide
1. 反斜線centos7
反斜線能夠將緊隨其後的單個字符視爲字面意義上的字符,如*在Shell中表明任意字符,在查找時常常會使用*來查找多個匹配的文件,然而有可能你須要找的就是*字符自己,此時,\*將會把*做爲字母意義上的普通字符。spa
另外,若是在命令的末尾使用\回車後,\能夠將回車的命令提交功能屏蔽,從而將回車認爲是換行繼續輸入命令,實現命令的多行輸入功能。it
[root@centos7 ~]# echo * #顯示當前目錄的全部文件列表class
anaconda-ks.cfginstall.log install.log.syslogtest
[root@centos7 ~]# echo \* #顯示*字符變量
*date
[root@centos7 ~]# echo \> #顯示>符號margin
>
[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