domingão, nada pra faze, um calorão dos inferno só podia dar nisso.
eu fiz umas funçõeszinhas que mais ou menos imitam os dicionarios de Python, usando array.
#!/bin/bash
function keys(){
x=0
eval 'qu=$((${#'$1'[@]} / 2 - 1))'
for ((i=0;i<=$qu;i++))
do
eval ''$2'[$i]=${'$1'[$x]}'
x=$(($x+2))
done
}
function values(){
x=1
eval 'qu=$((${#'$1'[@]} / 2 - 1))'
for ((i=0; i<=$qu; i++))
do
eval ''$2'[$i]=${'$1'[$x]}'
x=$(($x+2))
done
}
function dict(){
eval 'qu=${#'$1'[@]}'
for ((i=0; i<=$qu; i++))
do
eval 'vec=${'$1'[$i]}'
if [ "$vec" == "$2" ]
then
v=$(($i+1))
eval ''$3'=${'$1'[$v]}'
fi
done
}
a estrutura é assim, você faz um array contendo as chaves e valores, ex:
valor valor valor
v v v
arr=(joao 27 maria 23 jose 18)
^ ^ ^
chave chave chave
a função keys retorna um array com todas as chaves,
a sintaxe é assim.
nome do array que esta as chaves/valores, assim msm, sem o "$"
v
keys 'arr' 'chaves'
^
variavel a qual você quer associar o valor que retorna da função
depois você pode tratar a variavel como um array comum
$ echo ${chaves
- } #mostra todas as chaves
$ joao maria jose
A função values retorna todos os valores,
a sintaxe é assim.
nome do array que esta os chaves/valores
v
values 'arr' 'valores'
^
variavel a qual você quer associar o valor que retorna da função
depois você pode tratar a variavel como um array comum
$ echo ${valores - } #mostra todas os valores
$ 27 23 18
A função dict retorna o valor da chave passada,
a sintaxe é assim.
chave
v
dict 'arr' 'joao' 'va'
^ ^
array variavel a qual você quer associar o valor
depois você pode tratar a variavel
$ echo $va
$ 27
não sei se vai ser util, mas ta ai!!