引入問題:以前咱們知道了變量名前面加上$符號表明引用變量,可是若是我如今就須要打印出$符號該怎麼辦呢?想一想咱們在python中怎麼作的,答案是轉義。python
Shell中有兩種字符
一種是普通字符,沒有其餘的特殊含義,即普通純文本(literal)
另外一種是元字符(meta),是shell的保留字符,在shell中有特殊的含義,好比:$
爲了使用元字符的原本含義,須要使用反斜線 \ 來轉義特殊字符 !!!
shell
Shell中的引用是指將字符串用某種符號包含起來,以防止特殊字符被解析爲其餘的意思。
Shell中一共有4種引用符:單引號、雙引號、反引號 和 轉義符express
部分引用
指用雙引號印起來的內容。使用這種引用時,$、`(反引號)、\(轉義符) 這3個仍是會解析成特殊的意義工具
全引用
指用單引號引發來的內容,單引號中的任何字符串都看成普通字符串。單引號當中不能包含單引號,轉義也不行。測試
Shell中能夠將命令的標準輸出做爲值賦給某個變量,Shell中有兩種方式能夠完成命令替換,一種是反引號(`),一種是:$()3d
反引號是經常使用的一種命令替換,有點在於使用方便
direct=`pwd` #direct等於當前絕對路徑blog
$()和反引號是等價的,可是$()會讓代碼看上更加清晰,同時還支持嵌套,反引號是不支持嵌套的算術擴展是Shell提供的整數變量的運算機制,是Shell的內建命令之一算術擴展是Shell提供的整數變量的運算機制,是Shell的內建命令之一。字符串
Shell中只支持整數計算,全部產生小數的運算都會捨去小數部分。
常見運算符
常見的運算符包含:加(+)、減(-)、乘(*)、除(/)、取餘(%) 和 冪(**),常見的算術運算大多須要結合Shell的內建命令 let 來使用。it
符合運算符
常見符合運算符包含加等(+=)、減等(-=)、乘等(*=)、除等(/=)、餘等(%=)io
$[]
$[] 能夠用於簡單的運算
算術擴展:$((…))
算術擴展是Shell提供的整數變量的運算機制,是Shell的內建命令之一。
高精度計算
bc 是Linux下一款用來進行高精度計算的工具,甚至能夠稱它爲一門語言
直接輸入:bc 進入它的交互模式
默認狀況下,bc不顯示小數部分,能夠經過scale來設置小數位數
在shell腳本中能夠經過管道符來使用 bc
Shell中進行測試有兩種方法
第一種是使用 test 命令
第二種是使用 [ 啓動一個測試,以 ] 結束測試
test expression
expression 是一個表達式,能夠是算術比較、字符串比較、文本和文件屬性等
-e 是一個文件測試符,用來判斷文件是否存在
[ expression ] 是經常使用的測試方式
注意:左邊的括號 [ 後邊有一個空格, 右括號 ] 前面也有一個空格,任意一個地方少一個空格都會報錯
在if、while、case等裏面通常都會使用這種方式
經過文件測試符,能夠進行很是多的文件測試
Shell中字符串的比較主要有等於、不等於、大於、小於、是否爲空
整數測試是經常使用的簡單算術運算
邏輯測試主要有邏輯非(!)、邏輯與(-a 或 &&)、邏輯或(-o 或 ||)3種
If 判斷是經常使用的判斷語句,有多種形式,能夠根據不一樣的需求來選擇形式
語法規則
須要注意:
1. 判斷式後面有分號(;) 和 then ,而且之間有空格
2. 一個 if 判斷最後必定要以 fi 結尾
示例: