comment assigner à une variable Bash un élément de tableau tel que le tableau est l'indice lui-même par une variable (une chose la plus triviale dans toutes les langues, mais semble spécial bash?)variables d'utilisation Bash comme index de tableau
J'ai essayé plusieurs variantes telles que:
let temp1=list1[list1Index]
ou
temp1=${list1[$list1Index]}
aucun d'entre eux travaillent évidemment. Pas d'erreur mais rien n'est affiché par echo $ temp1 Que puis-je faire?
ici est le code complet (avec des noms fictifs pour les chemins):
#! /bin/bash
pathFrontalGray='/mnt/c/Users/dummyName/'
list1=('x' 'y' 'z' 'a' 'b' 'c')
prefix1='dummyName'
echo $pathFrontalGray
touch fileNamesGray.txt
ls $pathFrontalGray > fileNamesGray.txt
fileGray='fileNamesGray.txt'
list1Index=0
i=0
while IFS= read -r line
do
let i=i+1
echo $i
#means if NOT divisibe by 9 -> if <expr evaluated to 0> -> equiv if false
if (($i % 9));then
let list1Index=list1Index+1
fi
temp1=$list1[$((list1Index))]
echo $temp1
#mv $pathFrontalGray$line $prefix1${list1[$list1Index]}
# display $line or do somthing with $line
#printf '%s\n' "$line"
done <"$fileGray"
'$ array [$ ((index))]'? – daniu
Votre deuxième approche, '" $ {arr [$ idx]} "', devrait fonctionner. Montrez-nous votre tableau. – randomir
'list1 [list1Index]' fonctionne aussi bien, si c'est un tableau non-associatif et 'list1Index' le nom de est une variable contenant un entier comme valeur. C'est-à-dire - (1) non, ce n'est pas "évident", et (2) nous avons vraiment besoin d'un [mcve] inclus dans la question pour que d'autres puissent reproduire le comportement revendiqué. –