shell學習三十七天 引用

2021-07-03 14:53:19 字數 1651 閱讀 1169

引用

案例,如果我想輸出乙個星號

(*),

使用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 介面用於比較兩個元組或陣...