【发布时间】:2013-05-27 11:41:21
【问题描述】:
我需要从 bash shell 中的数组中删除一个元素。 通常我会这样做:
array=("${(@)array:#<element to remove>}")
不幸的是,我要删除的元素是一个变量,所以我不能使用前面的命令。 下面是一个例子:
array+=(pluto)
array+=(pippo)
delete=(pluto)
array( ${array[@]/$delete} ) -> but clearly doesn't work because of {}
有什么想法吗?
【问题讨论】:
-
哪个外壳?你的例子看起来像
zsh。 -
array=( ${array[@]/$delete} )在 Bash 中按预期工作。您是否只是错过了=? -
@Ken,这不是我们想要的 - 它会从每个字符串中删除任何匹配项,并在匹配整个字符串的数组中留下空字符串。