22-07-2017, 12:46:51
Dans les shells + évolués que pdksh, il existe la technique des références indirectes - appelées aussi 'pointeurs indirects' dans certains langages de programmation, tel C - cela permet de créer des variables dynamiques à partir d'autres et ainsi de récupérer leurs valeurs.
Bref, j'essaye d'appliquer les explications sur cette page, j'arrive à un résultat probant par le biais de l'instruction 'eval', ou d'une declaration 'typeset 'n pour ksh93... mais pas à de résultat avec la technique de tableau.
Voili, voilou... si quelqu'un peut tester dans son coin, ça serait sympa.
Je donne une début de code :
Bref, j'essaye d'appliquer les explications sur cette page, j'arrive à un résultat probant par le biais de l'instruction 'eval', ou d'une declaration 'typeset 'n pour ksh93... mais pas à de résultat avec la technique de tableau.
Voili, voilou... si quelqu'un peut tester dans son coin, ça serait sympa.
Je donne une début de code :
Code :
set -A menus 'badips' 'blacklist' 'bogons' 'quit'
txt_menus_badips="Generate a badips list"
txt_menus_blacklist="Generate a blacklist domains"
txt_menus_bogons="Generate a bogons list"
set -A dialog_menu
set -A iostat
typeset nb="${#menus[@]}"
i=0
while (( i < $nb )); do
#dialog_menu[$i]="${menus[$i]} ${menus[$i]} "
name="${menus[$i]}"
text="txt_menus_$name"; echo "txt: $text"
#eval "infos=\${$text}";
iostat[$i]=$(text)
echo "indirect ref: ${iostat[$i]}"
dialog_menu[$i]="${menus[$i]}"
let i+=1
done
GPG:Fingerprint ed25519 : 072A 4DA2 8AFD 868D 74CF 9EA2 B85E 9ADA C377 5E8E
GPG:Fingerprint rsa4096 : 4E0D 4AF7 77F5 0FAE A35D 5B62 D0FF 7361 59BF 1733