bash - 如何通过间接引用从原始数组中删除元素
问题描述
我有三个数组:
array1=(8 7 6 5 4 3 2 1)
declare -a array2
declare -a array3
而X表示我应该将哪个数组用于某些操作所以,首先我发现它是这样的:
nameOfArray=array$X[@]
indirectTempArray=("${!nameOfArray}")
echo ${indirectTempArray[@]} // returns 8 7 6 5 4 3 2 1 in case if X == 1
所以,问题是,我如何从我拥有的原始数组中删除值?
解决方案
您可以将纯字符串传递给unset
:
array1=(8 7 6 5 4 3 2 1)
X=1
unset "array$X[1]"
declare -p array1
导致数组没有第二个元素(索引 1):
declare -a array1=([0]="8" [2]="6" [3]="5" [4]="4" [5]="3" [6]="2" [7]="1")
推荐阅读
- javascript - 在 Postman 预请求脚本中获取 Azure REST 访问令牌
- python - 我在 Seaborn 桌子上的 X 轴上的标签不正确
- sql - SQL:返回分页记录并获取所有记录的计数
- python - 如何在 python 的 ascii 中打印 32 个控制字符?
- grails - 在 GrailsParameterMap groovy 中使用数组重定向的优雅方法
- python - 解码 jwt AuthError: ({'code': 'invalid_header', 'description': 'Unable to parse authentication token.'}, 400)
- .net - 如何运行或执行 EntityFramework.CodeTemplates.CSharp
- java - 进行 Hibernate 映射时,整个表未在 JSON 中显示
- date - lubridate 分配不切实际的日期
- css - 有没有办法动态更改子元素的填充以填充父元素?