Je suis nouveau sur bash et je ne trouve pas un bon tutoriel pour répondre à ma question.
array=( item1 item2 item3)
for name in ${array[@]}; do
echo current/total
... some other codes
done
Je veux calculer les valeurs "actuelle" et "totale", comme le résultat attendu de ceci:
1/3
2/3
3/3
Merci pour tout type de conseils
${array[@]}
des guillemets doubles. Sinon, le fractionnement des mots sera effectué et vous obtiendrez des résultats indésirables, sur des entrées telles quearray=("item 1" "item 2" "item 3")
.Réponses:
Vous pouvez accéder aux index du tableau en utilisant
${!array[@]}
et la longueur du tableau en utilisant${#array[@]}
, par exemple:Notez que puisque les tableaux bash sont indexés à zéro , vous obtiendrez en réalité:
Si vous voulez que le nombre commence à 1, vous pouvez le remplacer
$index
par$((index+1))
. Si vous voulez les valeurs ainsi que les indices que vous pouvez utiliser"${array[index]}"
c'est à diredonnant
la source
echo ($index+1)/${#array[@]}
:?Un indice zéro est parfaitement valide si vous pensez qu’il est en réalité un décalage par rapport à l’adresse de base d’un tableau. C'est la norme en fait, même si cela varie d'un dialecte à l'autre. Avec l’ancien langage Jovial,
[0]
contenait réellement la taille maximale du tableau. donc ça a commencé avec[1]
.Avec certaines implémentations de base, vous pouvez choisir arbitrairement d’avoir le premier
0
ou1
l’index. Et au moins un de base vous permet de désigner des tableaux à l' index Fron[n]
à[m]
. oùn
etm
peut avoir n'importe quelle valeur entière, même négative, tant qu'ellen
est inférieure ou égale àm
. La valeur quin
leur est déduite de la valeur[index]
saisie, commeindex-n = 0
si l’indice correspondaitn
.Mais vous pouvez faire la même chose et plus encore dans votre propre code. Vous pouvez même inverser l'ordre d'un tableau de cette façon:
Cet exemple de code n'est en réalité que partiellement d'une seule langue. Je voulais juste que ce soit plus lisible. La variable de pas sert à contrôler la direction apparente dans laquelle vous vous dirigez, qu'elle soit positive ou négative, et à calculer l'indice effectif lorsque vous entrez dans le tableau ou en sortez, ce qui est en fait toujours positif
[0]
.la source