SHELL 数组遍历

#!/bin/bash

array=("a" "b" "r" "c" "F") # 字符串数组推荐使用""来定义

# 循环遍历:带下标
echo -e "\033[31m 带下标的 foreach遍历方式 \033[0m"
for i in "${!array[@]}"; do
    # 双括号运算符:字符串转数字
    temp=$(($i + 1))
    echo 第$temp个元素是: "${array[$i]}"
done

# 循环遍历:不带下标
echo -e "\033[32m 不带下标的foreach遍历方式 \033[0m"
for item in ${array[@]}; do
    echo $item
done

echo -e "\033[33m 不带下标的foreach遍历方式的另一种写法 \033[0m"
# 循环遍历:不带下标
for item in ${array[*]}; do
    echo $item
done

echo -e "\033[31m 标准for循环方式 \033[0m"
for ((i = 0; i < ${#array[@]}; i++)); do
    #${#array[@]}获取数组长度用于循环
    # 计数
    num=$(($i + 1)) # 字符串转数值:$双括号语法格式
    echo "第$num个元素是: ${array[i]}"
done

echo -e "\033[32m While循环方式遍历 \033[0m"
k=0
while [ $k -lt ${#array[@]} ]; do #当变量(下标)小于数组长度时进入循环体
    # 计数
    num=$(($k + 1))
    echo "第$num个元素是: ${array[$k]}"
    #按下标打印数组元素
    let k++
done

echo "数值数组遍历"
numArray=(123 456 897 35)
for ((i = 0; i < ${#numArray[@]}; i++)); do
    num=$(($i + 1))
    echo "第$num个元素是: ${numArray[i]}"
done

posted @ 2022-03-14 12:16  LoremMoon  阅读(580)  评论(0编辑  收藏  举报