正文
關於變量
上一篇已經講過變量但是很簡單,這裏要詳細介紹,
hello="hello world"
echo $hello
echo ${hello}
hello=hello="A B C D"
echo $hello # ABCD
echo "$hello" # A B C D
echo '$hello' # $hello
a=`ls -l` # 把ls -l 的結果給a
R=$(cat /ect/redhat-release) #效果同上
{}標記法是一種很好的使用位置參數的方法.這也需要間接引用
args=$# # 位置參數的個數
lastarg=${!args}
# 或: lastarg=${!#}
# 注意 lastarg=${!$#} 將報錯
parameter+altvalue, {parameter:+alt_value}
如果 parameter 被set 了,那就使用alt_value,否則就使用null 字符串.
這兩種辦法絕大多數時候用法都一樣,只有在$parameter 被聲明並設置爲空的時候,parameter=default, {parameter:=default}
如果 parameter 未設置,那麼就設置爲default.parameter−default, {parameter:-default}
如果 parameter 沒被set,那麼就使用default..
declare/typeset 這是可以設置類型的,
需要解引用,
關於判斷
一般我們對於標準的語言都是用括號判斷內容知道真假,但是這種語言用的內建命令實現的,標記是[]
或者[[]]
,當然我們可以用·
((...)))
或者let
命令的得到返回碼。
這個東西挺複雜,這裏暫時省略,以後在補充,
關於正則表達式
這個東西在看代碼的時候,簡直想砸電腦,這裏實在不知道如何寫,找到一些基礎知識,這裏稍微整理,有機會在補充,
- 星號 – * – 匹配前一個字符的任意多次(包括零次).
- 點 – . – 匹配除了新行符之外的任意一個字符.
- 脫字符 – ^ – 匹配一行的開頭,但依賴於上下文環境,可能在正則表達式中表示否定
- 美元符 – – 在正則表達式中匹配行尾.
“^ ” 匹配空行. - 方括號 – […] – 在正則表達式中表示匹配括號中的一個字符.
“[xyz]” 匹配字符x, y, 或z.
“[c-n]” 匹配從字符c 到n 之間的任意一個字符. - 豎線 – | – “或”正則操作符用於匹配一組可選的字符.
這是很複雜,暫時不解釋,
後記
這裏省略很多知識,但是這裏僅僅是一個筆記,這裏以後有機會回頭整理出一個比較有條理的內容,這裏暫時就這樣。畢竟這種東西用的比較少。