BASH - 一个变量,数组名的部分(部分2) [英] BASH - A variable as part of array name (part 2)

查看:128
本文介绍了BASH - 一个变量,数组名的部分(部分2)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

比方说,我开始只是 ITEM1 =('ITEM1''1''20')

我再定义 itemnumber = 2

我想创建下一个数组项目$ itemnumber =('ITEM2''4''77'),但我得到一个语法错误。

I would like to create the next array as item$itemnumber=('item2' '4' '77'), but I get a syntax error.

之后,我想只是做 itemnumber = $((itemnumber + 1)),并创建项目$ itemnumber =('项目3 ''17''15')

After that I would like to just do itemnumber=$((itemnumber+1)), and create item$itemnumber=('item3' '17' '15')

这将使我的三个阵列项目1,2和3:

Which would give me three arrays item1, 2 and 3:

item1=('item1' '1' '20')
item2=('item2' '4' '77')
item3=('item3' '17' '15')

这可能吗?

推荐答案

使用声明命令,但你需要修改你如何进行分配。

Use the declare command, although you'll need to modify how you perform the assignment.

declare -a "item$itemnumber"
declare "item$itemnumber+=(item$itemnumber 4 77)

庆典 4.3,这是很大的一个名为引用简化。

In bash 4.3, this is greatly simplified with named references.

itemnumber=0
declare -n arr=item$itemnumber
arr+=(item$itemnumber 1 20)
((itemnumber++))
declare -n arr=item$itemnumber
arr+=(item$itemnumber 4 77)
((itemnumber++))
declare -n arr=item$itemnumber
arr+=(item$itemnumber 17 15)

就增加 itemnumber ,重新设定基准,然后使用引用,你会实际的数组。

Just increment itemnumber, reset the reference, then use the reference as you would the actual array.

这篇关于BASH - 一个变量,数组名的部分(部分2)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆