linux shell基礎五之資料型別
阿新 • • 發佈:2019-02-13
字串是shell程式設計中最常用最有用的資料型別(除了數字和字串,也沒啥其它型別好用了),字串可以用單引號,也可以用雙引號,也可以不用引號。單雙引號的區別跟PHP類似。
單引號字串的限制:
單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的;
單引號字串中不能出現單引號(對單引號使用轉義符後也不行)。
雙引號
雙引號的優點:
雙引號裡可以有變數
雙引號裡可以出現轉義字元
拼接字串
還可以單獨定義陣列的各個分量:
可以不使用連續的下標,而且下標的範圍沒有限制。
讀取陣列
讀取陣列元素值的一般格式是:
單引號
str='this is a string'
單引號字串的限制:
單引號裡的任何字元都會原樣輸出,單引號字串中的變數是無效的;
單引號字串中不能出現單引號(對單引號使用轉義符後也不行)。
雙引號
your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"
雙引號的優點:
雙引號裡可以有變數
雙引號裡可以出現轉義字元
拼接字串
獲取字串長度your_name="qinjx" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1
string="abcd"
echo ${#string} #輸出 4
提取子字串
string="alibaba is a great company"
echo ${string:1:4} #輸出liba
查詢子字串
純文字複製
string="alibaba is a great company"
echo `expr index "$string" is
陣列
bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。類似與C語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。
定義陣列
在Shell中,用括號來表示陣列,陣列元素用“空格”符號分割開。定義陣列的一般形式為:
array_name=(value1 ... valuen)
例如:
array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
)
還可以單獨定義陣列的各個分量:
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
可以不使用連續的下標,而且下標的範圍沒有限制。
讀取陣列
讀取陣列元素值的一般格式是:
使用@ 或 * 可以獲取陣列中的所有元素,例如:${array_name[index]} 例如: valuen=${array_name[2]} 舉個例子: #!/bin/sh NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy" echo "First Index: ${NAME[0]}" echo "Second Index: ${NAME[1]}" 執行指令碼,輸出: $./test.sh First Index: Zara Second Index: Qadir
# 取得陣列元素的個數
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得陣列單個元素的長度
lengthn=${#array_name[n]}