Bash script – unix – commande introuvable

Je suis nouveau au script bash et je me demande pourquoi je reçois le message ci-dessus. J’essaie une valeur arithmétique qui vient de la boucle for et je voudrais ensuite imprimer le tableau. Quelqu’un peut-il m’aider?

Merci d’avance!!

#!/bin/bash declare -a SCORES for j in `seq 0 5`; do SCORES$j="$(sh myscript.sh $DSLAM $j | grep "" -c )" done for k in "${SCORES[@]}" do echo "message $'\t' $SCORES$k" done echo ${#SCORES} 

=======

Sortie

 abcd.sh: line 16: SCORES0=3: command not found abcd.sh: line 16: SCORES1=135: command not found abcd.sh: line 16: SCORES2=826: command not found abcd.sh: line 16: SCORES3=107: command not found abcd.sh: line 16: SCORES4=3: command not found abcd.sh: line 16: SCORES5=3: command not found 0 

Vous ne pouvez pas affecter de variable avec le nom, qui est généré au moment de l’exécution; du moins pas la façon dont vous essayez.

Vous avez les options ci-dessous:

 declare "SCORES$j=$(sh myscript.sh $DSLAM $j | grep '' -c )" # creates new variables like SCORES1, SCORES2 etc. eval "SCORES$j=$(sh myscript.sh $DSLAM $j | grep '' -c )" #Definitely not preferred. SCORES[$j]="$(sh myscript.sh $DSLAM $j | grep '' -c )" #uses array you have created. 

Très probablement, l’option 3 est ce que vous voulez.