引用
案例,如果我想輸出乙個星號
(*),
使用echo
如何做?
echo *
這是肯定不行的,
需要將*轉移,
即:echo \*
這樣就引出了引用的概念.
所為引用
,是用來防止
shell
將某些你想要的東西解釋成不同的意義
.如果你希望某些可能被
shell
視為個別引數的東西保持為單個引數
,這時你就必須將其引用.
引用的三種方式:
反斜槓轉義
字元前置反斜槓(\),
用來告知
shell
該字元即為其字面上的意義.
單引號單引號(『...』)強制
shell
將一對引號之間的所有字元都看做其字面上的意義
.shell
指令碼會刪除這兩個引號
,只單獨留下被括起來的完整文字內容:
命令:echo 'here are some character * ? ` $ \'
輸出:here are some character * ? ` $ \
不能再乙個單引號引用的字串裡再內嵌乙個單引號.
即使是反斜槓
,在單引號裡也沒有特殊意義
(某些系統裡,像
echo 『a\tb』這樣的命令看起來像是shell
特別的處理反斜槓
,其實不然,這是
echo
命令本身有特殊的處理方式)
如需混用單引號和雙引號,
可以小心的使用反斜槓轉義以及不同引用字串的連線來做到:
命令:echo 'he said "how'\''s tricks?"'
輸出:he said "how's tricks?"
命令」echo "she replied ,\"movin' along\""
輸出:she replied ,"movin' along"
不管怎麼處理,
這種結合方式永遠是很難閱讀的.
雙引號雙引號(「...」)就像單引號那樣
,將括起來的文字視為單一字串
.只不過
,雙引號會確切的處理括起來文字中的轉義字元和變數,算術
,命令替換:
x=hahaha
echo 「$x」
輸出:hahaha
在雙引號裡,
字元$,」,`與
\,如需用到字面上的意義
,都必須前置
\.任何其他字元前面的反斜槓是不帶特殊意義的.序列
\-newline
會完全的被刪除
,就好像是用在指令碼裡的正文中一樣.
單引號被括在雙引號裡時就無特殊意義了,
他們不必承兌
,也不許轉移.
命令:echo "hahah'"
輸出:hahah'
一般來說,
使用單引號的時機是希望完全不處理的地方.否則
,當希望將多個單詞視為單一字串
,但又需要
shell
為你做些事情
,此時使用雙引號
,例如將乙個變數值與另乙個變數值連在一起:
oldvar=」$oldvar $newvar」
學習前端的第三十七天
js的物件的分類 本地物件 宿主物件 所有的自定義物件 注 例項化 轉化成實際的案例 補充關鍵字 delete,用來刪除自定義物件的屬性 只能刪除自定義物件的屬性,且一次只能刪乙個屬性 math數學物件,不需要數學知識支撐,使用這個物件直接得到想要的結果 方法 math.round math.cei...
shell學習十七天 awk命令
使用awk 重新編排字段 awk非常擅長處理結構化資料和生成表單.和 sed和 grep 很相似.由於awk 具備各種及哦啊本語言的特點 所以可以把它看做是一種指令碼語言.先來看個案例,只檢視 etc passwd 目錄下的使用者名稱和組名 awk f etc passwd 意思是 使用 來分割這一...
C 高階程式設計三十七天 結構比較
結構比較 陣列和元組都實現介面istructuralequatable 和istructuralcomparable.這兩個介面不僅可以比較引用 還可以比較內容 這些介面都是顯示實現的 所以在使用時需要把陣列和元組強制轉換為這個介面 istructuralequatable 介面用於比較兩個元組或陣...