【Shell基礎篇】Shell 變數
1.shell變數
注意不能有空格
由字母、下劃線和數字組成shell變數,不能由數字開頭
有效:_var, ersa, my_var
無效:12a, a+a
2.Shell字串
單引號、雙引號
單引號一般用於一條字串原樣輸出,變數無效
雙引號使用較為靈活,可以使用轉義字元,可以有變數
拼接字串
your_name=“roobot”
greeting_1=‘hello, ‘$your_name’ !’
echo $greeting_1 # 輸出hello, roobot !這裡其實是拼接字串,單雙引號效果一樣
greeting_2=‘hello, ${your_name} !’
echo $greeting_2 #輸出:hello, {your_name} !說明單引號不能識別變數,故原樣輸出
獲取字串長度
string=“abcdefg”
echo ${#string}
提取子字串
string=“your name is hugh”
echo ${string:1:4} #輸出our
#查詢子字串
注意使用反引號``
查詢字元i或o的位置,哪個字母先出現就計算哪個,從1開始,不是從0開始。
string=“my name is Evan”
echo expr index "$string" io
#輸出9,注意是從1開始。
3.Shell陣列
bash支援一維陣列,不支援多維,並且沒有限定陣列的大小
陣列下標從0開始
定義陣列: 用括號表示陣列,“ ”空格符號分割陣列元素
array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
)
可以單獨定義陣列的各個分量:
array_name[0]=value0
可以不使用連續的下標,而且下標得範圍沒有限制
讀取陣列
{array_name[0]}
使用@符號可以獲取陣列中的所有元素,例如:
echo ${array_name[@]}
獲取陣列的長度
#取得陣列元素的個數
length=${#array_name[@]} #或者length=${#array_name[*]}
echo $length #獲取陣列的長度,這裡是指陣列元素的個數: 4
echo $array_name #預設輸出第一個陣列元素:value0
length_1=${#array_name[1]}
echo $length_1 #獲取陣列單個元素的長度
4.Shell註釋
#: 每行註釋使用#
多行註釋:
:<<EOF
xx
xxx
xxxx
EOF
EOF也可以使用其他符號
:<<’
…此處省略1w+行
’
:<<!
…此處省略1w+行
!