我有一个数组,该数组是从文件中获得的。这个数组包含空元素,我不需要使用数组中的前3个元素。我需要删除所有这些内容。
FILE="$1"
index=0
while read name; do
get_group_names_from_file[$index]="$name"
index=$(($index+1))
done < "${FILE}"
for i in 2; do
unset get_group_names_from_file[$i]
done
for ((a=0; a < ${#get_group_names_from_file[*]}; a++))
do
echo "${get_group_names_from_file[$a]}"
done
取消设置只是将我的前2个元素替换为空元素。如何从get_group_names_from_file中删除空元素?
我从数组中删除了前2个元素,最后一个问题是从数组中删除了空元素;我该怎么办?
答案 0 :(得分:0)
使用参数扩展:
#!/bin/bash
arr=(abc def 'ghi jkl' mno)
arr=("${arr[@]:2}")
printf '<%s>\n' "${arr[@]}"
您也可以使用shift
。但是,它仅对正弦参数起作用,因此您需要使用set
,然后将结果分配回去:
#!/bin/bash
arr=(abc def 'ghi jkl' mno)
set -- "${arr[@]}"
shift 2
arr=("$@")
printf '<%s>\n' "${arr[@]}"