假设我从item1=('item1' '1' '20')
开始
然后我定义itemnumber=2
我想将下一个数组创建为item$itemnumber=('item2' '4' '77')
,但出现语法错误。
之后,我只想做itemnumber=$((itemnumber+1))
,并创建item$itemnumber=('item3' '17' '15')
它会给我三个数组项1,2和3:
item1=('item1' '1' '20')
item2=('item2' '4' '77')
item3=('item3' '17' '15')
这可能吗?
最佳答案
使用declare
命令,尽管您需要修改执行分配的方式。
declare -a "item$itemnumber"
declare "item$itemnumber+=(item$itemnumber 4 77)
在
bash
4.3中,使用命名引用大大简化了这一过程。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
,重置引用,然后像使用实际数组一样使用引用。