PART I --- Shell變量
- 變量類型:
- 1)局部變量: 局部變量在腳本或命令中定義,僅在當(dāng)前shell實(shí)例中有效,其他shell啟動(dòng)的程序不能訪問(wèn)局部變量。
2)環(huán)境變量: 所有的程序,包括shell啟動(dòng)的程序,都能訪問(wèn)環(huán)境變量,有些程序需要環(huán)境變量來(lái)保證其正常運(yùn)行。必要的時(shí)候shell腳本也可以定義環(huán)境變量。
3)shell變量: shell變量是由shell程序設(shè)置的特殊變量。shell變量中有一部分是環(huán)境變量,有一部分是局部變量,這些變量保證了shell的正常運(yùn)行
- 1)局部變量: 局部變量在腳本或命令中定義,僅在當(dāng)前shell實(shí)例中有效,其他shell啟動(dòng)的程序不能訪問(wèn)局部變量。
- 變量相關(guān)操作:
- 1)聲明變量: name = "ceshi"
2)使用變量:$name 或者${name}- 只讀變量: ceshi = "只讀變量" readonly ceshi
- 刪除變量: unset 變量名稱
- Shell 字符串:
- 1)可以用單引號(hào)和雙引號(hào)聲明,也可以都不用
2)獲取字符串的長(zhǎng)度:string="abcd" echo ${#string} #輸出: 4 - 3)提取子字符串: 從例子字符串第 2 個(gè)字符開始截取 4 個(gè)字符
str = "dhahdjadhja"
echo ${string:1:4} #輸出: hahd
- 4)查找字符串: 查找字符 i 或 o 的位置(哪個(gè)字母先出現(xiàn)就計(jì)算哪個(gè))
string="runoob is a great site"
echo `expr index "$string" io` # 輸出 4
- Shell 數(shù)組:
- 1)定義數(shù)組: array = (val1 val2 val3 ... valn) or array_name=(
value0
value1
value2
value3
)- 讀取數(shù)組: valn =
{array_name[@]}
- 讀取數(shù)組: valn =
- Shell 運(yùn)算符:Shell 和其他編程語(yǔ)言一樣,支持多種運(yùn)算符,包括:
- 算數(shù)運(yùn)算符
- 關(guān)系運(yùn)算符
- 布爾運(yùn)算符
- 字符串運(yùn)算符
- 文件測(cè)試運(yùn)算符
Attention:原生bash不支持簡(jiǎn)單的數(shù)學(xué)運(yùn)算,但是可以通過(guò)其他命令來(lái)實(shí)現(xiàn),例如 awk 和 expr,expr 最常用。expr 是一款表達(dá)式計(jì)算工具,使用它能完成表達(dá)式的求值操作