[pdksh] array name operators
#1

(re)bonjour.

En pdksh, j'ai le droit à l'insulte "bad substitution", si je cherche à utiliser l'operateur '!' dans un tableau, tel que :

Code :
${!array[@]}

Pour ceux qui ne connaissent pas, cela permet de parcourir un tableau en obtenant un index, et non pas la valeur de la clé correspondante.
(un peu de lecture très intéressante, au cas où... et particulièrement le chap. 6.4.3)

Bref, qui sait comment je peux parcourir un tableau en pdksh pour obtenir l'index... ?!

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
Répondre
#2

Bon, je suis arrivé à un résultat équivalent - ça a été long et pénible après moult tests de boucle for - avec une boucle while, telle que :

Code :
i=0
while (( i < $nb )); do
    echo "tableau[$i]: ${array[$i]};
    let i+=1
done

Faut avouer que c'est ch*** de coder avec pdksh, quand on connaît des shells + évolués, ou tout simplement en comparaison de ksh93 - qui de fait est lui aussi + évolué :p

----

Clairement, il vaut toujours mieux utiliser 'while' que 'for' dans beaucoup de contexte... tout aussi efficace.

Parce qu'entres autres, pdksh ne connait pas la syntaxe 'for i in {0..$nb}; do insctructions; done' - ou une équivalence !

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
Répondre


Sujets apparemment similaires…
Sujet / Auteur Réponses Affichages Dernier message

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)