# 方式一 declare -a arr=("element1""element2""element3")
# 方式二 arr=("element1""element2""element3")
# 方式三,多行声明 declare -a arr=("element1" "element2""element3" "element4" )
2. 遍历数组
以下是几种不同的遍历数组的方法:
基本的for循环遍历
1 2 3 4 5
declare -a arr=("element1""element2""element3") for i in"${arr[@]}" do echo"$i" done
使用计数器遍历
1 2 3 4 5 6
declare -a array=("one""two""three") arraylength=${#array[@]} for (( i=0; i<${arraylength}; i++ )); do echo"index: $i, value: ${array[$i]}" done
遍历列表变量
1 2 3 4 5
List=( Item1 Item2 Item3 ) for Item in${List[*]} do echo$Item done
遍历关联数组
1 2 3 4 5 6 7 8
declare -A continent continent[Vietnam]=Asia continent[France]=Europe continent[Argentina]=America for item in"${!continent[@]}"; do printf"$item is in ${continent[$item]} \n" done
处理CSV格式的列表
1 2 3 4 5 6 7 8
List="Item 1,Item 2,Item 3" Backup_of_internal_field_separator=$IFS IFS=, for item in$List; do echo$item done IFS=$Backup_of_internal_field_separator
3. 其他技巧
隐式数组处理脚本或函数参数
1 2 3 4
set -- arg1 arg2 arg3 for item ;do echo"This is item: $item." done
使用数组键列表遍历
1 2 3 4
declare -a arr=("element 1""element 2""element 3") for i in"${!arr[@]}";do printf'Field id:%2d is "%s".\n'"$i""${arr[i]}" done
# 声明数组 declare -a arr=("element1""element2""element3")
# 基本的for循环遍历 echo"基本的for循环遍历:" for i in"${arr[@]}" do echo"$i" done
# 使用计数器遍历 echo"使用计数器遍历:" arraylength=${#arr[@]} for (( i=0; i<${arraylength}; i++ )); do echo"index: $i, value: ${arr[$i]}" done
# 遍历列表变量 echo"遍历列表变量:" List=( Item1 Item2 Item3 ) for Item in${List[*]} do echo$Item done
# 遍历关联数组 echo"遍历关联数组:" declare -A continent continent[Vietnam]=Asia continent[France]=Europe continent[Argentina]=America for item in"${!continent[@]}"; do printf"$item is in ${continent[$item]} \n" done
# 处理CSV格式的列表 echo"处理CSV格式的列表:" List="Item 1,Item 2,Item 3" Backup_of_internal_field_separator=$IFS IFS=, for item in$List; do echo$item done IFS=$Backup_of_internal_field_separator
# 隐式数组处理脚本或函数参数 echo"隐式数组处理脚本或函数参数:" set -- arg1 arg2 arg3 for item ;do echo"This is item: $item." done
# 使用数组键列表遍历 echo"使用数组键列表遍历:" declare -a arr2=("element 1""element 2""element 3") for i in"${!arr2[@]}";do printf'Field id:%2d is "%s".\n'"$i""${arr2[i]}" done