linux中shell的陣列簡介
阿新 • • 發佈:2019-01-14
陣列
1.陣列定義方法:
方法1:
array=(1 2 3)
echo ${array[*]}
方法2:
array=([1]=one [2]=two [3]=three)
echo ${array[*]}
方法3:
array[0]=a
array[1]=b
array[2]=c
echo ${array[1]}
echo ${array[*]}
此處顯示全部的時候顯示出了three,是之前定義的陣列第四個元素
方法4:動態定義陣列變數,並使用命令的輸出結果作為陣列的內容
array=($(ls /array)) echo ${array[*]}
2.陣列的列印和輸出
1)列印陣列元素
array=(one two three)
echo ${array[0]}
echo ${array[1]}
echo ${array[*]}
echo ${array[@]} ##@與*的作用是一樣的
2)列印元素個數
echo ${#array[*]}
echo ${#array[@]} ##括號內#為統計陣列內元素個數
3)陣列的賦值
#如果下標不存在,則自動新增一個新的元素,如果存在,則覆蓋原來的值
array[3]=four
echo ${array[*]}
array[0]=westos
echo ${array[*]} ##如下圖陣列中第一個元素被代替了,成了westos
4)陣列的刪除
unset array[1]
echo ${array[*]} ##刪除了陣列第二個元素
unset array ##刪除整個陣列
5)陣列內容擷取和替換
array=(0 1 2 3 4 5 6 7 8 9) echo ${array[@]:1:3}
array=($(echo {a..z}))
echo ${array[@]}
echo ${array[@]:1:3}
替換
array=(1 2 3 1 1)
echo ${array[@]/1/b} ##把1替換成b
3.作業:利用for迴圈列印下面這句話中字母個數小於於6的單詞
I am westos teacher welcome to westos training class
#!/bin/bash
arr=(I am westos teacher welcome to westos training class)
for ((i=0;i<${#arr[*]};i++))
do
if [ ${#arr[$i]} -lt 6 ];then
echo "${arr[$i]}"
fi
done
ok~