数组操作

Tutorial: Shell基础 Category: Shell Published: 2026-04-07 13:58:25 Views: 21 Likes: 0 Comments: 0
#!/bin/bash

ARR=(
    "aa"
    "bb"
    "cc"
    "dd"
    "ee"
    "ff"
)

function show_arr() {
    # 数组长度
    echo "数组的长度是: ${#ARR[@]}"

    # 根据键遍历数组
    for i in ${!ARR[@]}; do
        echo "下标是: $i, 列表项是: ${ARR[$i]}"
    done

    # 添加元素
    ARR+=("gg")
    echo "添加元素后: ${ARR[*]}"

    # 数组切片
    arr1=${ARR[@]:0}
    # arr1: aa bb cc dd ee ff gg

    arr2=${ARR[@]:1}
    # arr2: bb cc dd ee ff gg

    arr3=${ARR[@]:1:2}
    # arr3: bb cc

    arr4=${ARR[@]::3}
    # arr4: aa bb cc

    arr5=${ARR[@]::10}
    # arr5: aa bb cc dd ee ff gg (空格代替)

    echo "arr1: $arr1"
    echo "arr2: $arr2"
    echo "arr3: $arr3"
    echo "arr4: $arr4"
    echo "arr5: $arr5"

    # 删除元素
    unset ARR[0]
    echo "删除元素后: ${ARR[@]}"
    # bb cc dd ee ff gg

    # 匹配替换
    # ${ARR[@]/x/y}  最小匹配替换, 每个元素只替换一次
    # ${ARR[@]//x/y} 最大匹配替换, 每个元素可替换多次
    # ${ARR[@]/x/}   最小匹配删除, 只删除一个符合规定的元素
    # ${ARR[@]//x/}  最大匹配删除, 可删除多个符合规定的元素

    # 匹配删除
    : " #  每个元素,从左向右进行最短匹配
        ## 每个元素,从左向右进行最长匹配
        %  每个元素,从右向左进行最短匹配
        %% 每个元素,从右向左进行最长匹配
    "
}

function main() {
    show_arr
}

main

Prev: 循环批量创建文件 Next: None