Bruno,
Não entendi o que queres, mas irei explica alguns detalhes e talvez isso o ajude.
Declarar variáveis
#Sem array ou array singular¹
$ var1="abcde"
$ echo $var1 #ou ${var[0]}
#Array
$ var1=(a b c d) #Observe que o separador é um espaço em branco " "
$ echo ${var1[1]} # 0=a, 1=b...
¹ Quero dizer que mesmo com essa sintaxe o valor também pode ser lido na chave 0.
E quando separador é "#" ou ";"?
Exemplo didático:
parser(){
#Substitui "#" ou ";" por " "(espaço)
var="${1//[#|;]/ }"
#retorna: a b c
echo $var
}
var3="feijao3#arroz3#macarrao3" #No email: var3=(feijao#arroz#macarrao)
var4=(feijao4 arroz4 macarrao4) #Array
var5="feijao5;arroz5;macarrao5" #No email: var5=("feijao;arroz;macarrao")
tmp_var1=($(parser "${var3}")) #Executa a função parser passando var3 como argumento e com o retorno cria o array
tmp_var2=($(parser "${var5}"))
echo ${var4[0]} #imprime valor da chave 0.
feijao4
echo ${var4[@]} #imprime todos os valores contido no array
feijao4 arroz4 macarrao4
var4[0]="${tmp_var1[2]} ${var4[0]}" #Substitui o valor contido na chave 0.
var4=(${var4[@]}) #Recria o array var4 expandindo valores atuais de var4.
echo ${var4[0]}
macarrao3
echo ${var4[@]}
macarrao3 feijao4 arroz4 macarrao4
#Dessa forma colocamos o campo 3(chave 2) de var3 no campo1(chave 0 ) de var4.
No shell bash desconheço qualquer tipo métodos para estrutura de dados como lista.append('hello'), insert(), extend(), etc.