数组简介
数组是Linux Shell脚本中的一种数据结构,用于存储多个值,数组中的每个元素都有一个索引,从0开始递增,在Shell脚本中,可以使用以下语法创建数组:
array_name=(value1 value2 value3 ...)
创建一个名为fruits
的数组,包含三个元素:apple
、banana
和orange
:
fruits=("apple" "banana" "orange")
数组的常用操作
1、获取数组长度
使用${array[@]}
或${array[*]}
获取数组长度,获取fruits
数组的长度:
echo ${fruits[@]} 输出:3
2、访问数组元素
使用${array[index]}
访问数组中的元素,注意,数组索引从0开始,访问fruits
数组中的第一个元素:
echo ${fruits[0]} 输出:apple
3、遍历数组元素
可以使用for循环遍历数组中的元素,遍历fruits
数组并打印每个元素:
for fruit in "${fruits[@]}"; do echo $fruit done 输出:apple banana orange
4、添加/删除数组元素
使用+=
和-=
操作符分别向数组添加和删除元素,向fruits
数组添加一个新元素grape
:
fruits+=("grape") 或者 fruits["new_element"]="grape" 不推荐使用这种方式,因为它会破坏原始顺序
5、截取数组部分元素
使用圆括号和方括号结合的方式截取数组部分元素,截取fruits
数组的前两个元素:
sub_array=("${fruits[@]:0:2}") 注意:方括号内的冒号表示范围,而不是索引,这里表示从索引0开始,截取到索引1(不包括)的元素,即前两个元素。 或者使用以下方式: sub_array=(${fruits[0]} ${fruits[1]}) 直接将前两个元素赋值给新数组,这种方式更简洁,但可能会导致原始顺序被破坏。
相关问题与解答
1、如何合并两个已排序的数组?可以使用printf "%s %s" "${array1[@]}" "${array2[@]}" | sort -t ' ' -k 2| cut -d ' ' -f 1-2 > merged_array.txt
,将两个数组合并为一个新数组,并保持原有顺序,然后使用以下命令读取合并后的数组:read array < merged_array.txt,最后使用for循环遍历新数组并打印每个元素,这种方法适用于已排序的数组,且需要保持原始顺序,如果不需要保留原始顺序,可以直接使用printf "%s %s" "${array1[@]}" "${array2[@]}" | sort -u > merged_array.txt
,将两个数组合并为一个无重复元素的新数组,然后使用for循环遍历新数组并打印每个元素,这种方法适用于任意顺序的数组。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/162137.html