shell中的引用

By francis_hao    Mar 31,2018 html

 

引用,用來移除某個字符或單詞對於shell的特殊含義 shell

每一個元字符對於shell都有特殊含義,可分割單詞,若是想使用其自己的含義就須要用到引用,元字符以下 bash

|spa

&htm

;blog

(ci

)get

<string

>table

space

tab

 

若是知足歷史命令擴展的條件而又不想擴展就必須使用引用。命令擴展一般是"!"

 

有三種引用機制,以下

\

轉義符,能夠使一些有特殊含義的字符保持其自己含義

'

單引號裏的內容都保持了其自己的含義,單引號裏不能再有單引號

"

雙引號裏的內容除了幾個特例,其他內容都保持其自己含義。特例包括

$

用於變量置換

`

用於命令置換

\

只有在其後跟隨$ ` " \<newline>的時候才做爲特例,不然就是字符自己

!

只有在符合歷史命令擴展的時候才做爲特例,不然就是字符自己

 

有一種特殊形式:$'string',用於ANSI C標準的轉義序列,string是下面的一種

\a

響鈴

\b

退格

\e

溢出(ESC

\E

\f

換頁符

\n

換行

\r

回車

\t

製表符

\v

垂直製表符

 

示例

一、特殊形式$'string'的用法,這裏是退格字符。

 

二、這裏的*不屬於雙引號引用裏的特例,因此不會被擴展,只是以字符自己對待。

因此在下面的腳本中,第二種寫法就會致使結果不是預期的了

 

 


本文由 劉英皓 創做,採用 知識共享署名-非商業性使用-相同方式共享3.0中國大陸許可協議 進行許可。歡迎轉載,請註明出處:
轉載自:http://www.cnblogs.com/yinghao1991/p/8682143.html

 

 

參考

【1】man bash

相關文章
相關標籤/搜索