加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

array – 从数组shell中删除元素

发布时间:2020-12-15 09:19:34 所属栏目:安全 来源:网络整理
导读:我需要从bash shell中的数组中删除一个元素。 一般我只是做: array=("${(@)array:#element to remove}") 不幸的是,我想删除的元素是一个变量,所以我不能使用以前的命令。 下面这个例子: array+=(pluto)array+=(pippo)delete=(pluto)array( ${array[@]/$d
我需要从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匹配的前缀,而不一定是整个元素。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读