Bash 數(shù)組

2020-06-18 18:48 更新

數(shù)組聲明

  1. 索引數(shù)組

使用declare-a選項(xiàng),將變量來(lái)聲明數(shù)組,語(yǔ)法如下:

    #聲明數(shù)組
    declare -a Array_Name


    #創(chuàng)建數(shù)組元素
    Array_Name[index_1]=value_1
    Array_Name[index_2]=value_2


    #或


    Array_Name=(
        [index_1]=value_1
        [index_2]=value_2
    )

注:
- 在 Bash 中命名數(shù)組的規(guī)則與變量的命名規(guī)則相同。
- Array_Name是數(shù)組名稱。
- index是為正整數(shù)的索引。

  1. 關(guān)聯(lián)數(shù)組

使用declare-A選項(xiàng)來(lái)聲明數(shù)組,語(yǔ)法如下:

    #聲明數(shù)組
    declare -A Array_Name


    #創(chuàng)建數(shù)組元素
    Array_Name[index_1]=value_1
    Array_Name[index_2]=value_2


    #或


    Array_Name=(
        [index_1]=value_1
        [index_2]=value_2
    )

  1. 數(shù)組初始化

    Array_Name=(element_1 element_2 element_3)
>注:
>- 此處索引從0開始。
>- `=`兩側(cè)無(wú)空格。

  1. 打印數(shù)組

    declare -p Array_Name

數(shù)組運(yùn)算

  1. 訪問(wèn)元素

您要想訪問(wèn)一個(gè)元素,首先需要知道該元素的索引下標(biāo),然后使用以下語(yǔ)法進(jìn)行訪問(wèn)獲取。

    ${Array_Name[index]}

如果您使用@*作為索引進(jìn)行訪問(wèn)獲取,那么將會(huì)得到數(shù)組中的所有元素。

    #!/bin/bash


    declare -a arr=("welcome" "to" "W3Cschool")


    echo "@"
    for i in "${arr[@]}"
    do
    echo "$i"
    done


    echo "*"
    for i in "${arr[*]}"
    do
    echo "$i"
    done

執(zhí)行后得到以下結(jié)果:

    @
    welcome
    to
    W3Cschool


    *
    welcome to W3Cschool

注:
- @*兩者的區(qū)別主要體現(xiàn)在循環(huán)結(jié)果的不同。

  1. 打印數(shù)組鍵

您還可以檢索和打印在數(shù)組中使用的鍵。語(yǔ)法如下:

    ${!Array_Name[index]}

示例:

    #!/bin/bash


    declare -a arr=( "Welcome" "To" "W3Cschool" )


    echo "${!arr[@]}"

執(zhí)行后得到以下結(jié)果:

    0 1 2

  1. 查找數(shù)組長(zhǎng)度

數(shù)組長(zhǎng)度即數(shù)組中的元素個(gè)數(shù),語(yǔ)法如下:

    ${#ARRAY_NAME[@]}

**示例:**


```
#!/bin/bash

declare -a arr=( "Welcome" "To" "W3Cschool" )

echo "The array contains ${#arr[@]} elements"



    執(zhí)行后得到以下結(jié)果:

The array contains 3 elements
```

  1. 遍歷數(shù)組

遍歷數(shù)組的通用方法是 for 循環(huán),如下所示:

    #!/bin/bash


    declare -a arr=( "Welcome" "To" "W3Cschool" )


    for i in "${!arr[@]}"
    do
    echo The key value of element "${arr[$i]}" is "$i"
    done

執(zhí)行后得到以下結(jié)果:

    The key value of element Welcome is 0
    The key value of element to is 1
    The key value of element W3Cschool is 2

  1. 添加或刪除元素

  • 添加元素

    Array_Name[index]="New Element"

示例:

    #!/bin/bash


    declare -a arr=( "Java" "Python" "PHP" "HTML" )


    arr[4]="JavaScript"


    echo "${arr[@]}"

執(zhí)行后得到以下結(jié)果:

    Java Python PHP JavaScript CSS SQL

  • 刪除元素

    unset ARRAY_NAME[index]

示例:

    #!/bin/bash


    declare -a arr=( "Java" "Python" "HTML" "CSS" "JavaScript" )


    unset arr[1]


    echo "${arr[@]}"

執(zhí)行后得到以下結(jié)果:

    Java HTML CSS JavaScript

  1. 刪除數(shù)組

可以通過(guò)將數(shù)組名稱作為參數(shù)傳遞給unset命令執(zhí)行刪除操作,如下所示:

    #!/bin/bash


    declare -a arr=( "Java" "Python" "HTML" "CSS" "JavaScript" )


    unset arr


    echo ${!arr[@]}


    echo ${!arr[@]}

執(zhí)行后返回空結(jié)果,數(shù)組已不存在。

  1. 數(shù)組切片

Bash 數(shù)組也可以從指定的起始索引切片至指定的結(jié)束索引,語(yǔ)法如下:

    Slieced_Array=(${Array_Name[@]:m:n}")

示例:

    #!/bin/bash


    example_array=( "Java" "Python" "HTML" "CSS" "JavaScript" )


    sliced_array=("${example_array[@]:1:3}")


    for i in "${sliced_array[@]}"
    do
    echo $i
    done

執(zhí)行后得到以下結(jié)果:

    Python
    HTML
    CSS
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)