问题描述
比方说,我开始只是 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)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!