gpt4 book ai didi

bash - 如何删除数组中的元素,然后在 Shell 脚本中移动数组?

转载 作者:行者123 更新时间:2023-11-29 08:48:58 28 4
gpt4 key购买 nike

先说清楚我的问题:

例如:让我们假装这是我的数组(元素并不重要,因为在我的实际代码中它们有所不同):

array=(jim 0 26 chris billy 78 hello foo bar)

现在假设我要删除以下元素:

chris 78 hello

所以我做了:unset array[$i] 同时遍历数组。这正确地删除了元素,但是,我最终得到一个如下所示的数组:

array=(jim 0 26 '' billy '' '' foo bar)

我需要它看起来像这样:

array=(jim 0 26 billy foo bar)

jim 位于索引 00@126@2 等处。

如何删除数组中的元素并移动其他元素以使数组中没有空/空空格?

谢谢!

最佳答案

试试这个:

$ array=( "one two" "three four" "five six" )
$ unset array[1]
$ array=( "${array[@]}" )
$ echo ${array[0]}
one two
$ echo ${array[1]}
five six

Shell 数组并不是真正打算用作您可以从中添加和删除项目的数据结构(它们主要旨在为类似情况提供第二级引用

arr=( "one two" "three four" )
somecommand "${arr[@]}"

somecommand 提供两个而不是四个参数)。但这应该适用于大多数情况。

关于bash - 如何删除数组中的元素,然后在 Shell 脚本中移动数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17533231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com