array – 从数组shell中删除元素

前端之家收集整理的这篇文章主要介绍了array – 从数组shell中删除元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要从bash shell中的数组中删除一个元素。
一般我只是做:
array=("${(@)array:#<element to remove>}")

不幸的是,我想删除的元素是一个变量,所以我不能使用以前的命令。
下面这个例子:

array+=(pluto)
array+=(pippo)
delete=(pluto)
array( ${array[@]/$delete} ) -> but clearly doesn't work because of {}

任何想法?

下面的工作原理和你在bash和zsh中一样:
$ array=(pluto pippo)
$ delete=(pluto)
$ echo ${array[@]/$delete}
pippo
$ array=( "${array[@]/$delete}" ) #Quotes when working with strings

如果需要删除多个元素:

...
$ delete=(pluto pippo)
for del in ${delete[@]}
do
   array=("${array[@]/$del}") #Quotes when working with strings
done

警告

这种技术实际上从元素中删除与$ delete匹配的前缀,而不一定是整个元素。

猜你在找的Bash相关文章