1. 程式人生 > >linux中shell的陣列簡介

linux中shell的陣列簡介

陣列
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~