Bonjour,
je suis en train d'écrire un script pour soumettre des jobs sur cluster, seulement je rencontre une difficulté lorsque je dois modifier successivementdes variables à l'intérieur d'une boucle for. Je suis parvenu à isoler le problème dans le but de code suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
#!/bin/bash
echo un test rapide
i=03
declare "Lidar_Clouds_NO_rd""$i"=5863766
echo Lidar_Clouds_NO_rd$i=$((Lidar_Clouds_NO_rd$i))
declare "Lidar_Clouds_HSRL_rd""$i"=5863767
echo Lidar_Clouds_HSRL_rd$i=$((Lidar_Clouds_HSRL_rd$i))
i=04
declare "Lidar_Clouds_NO_rd""$i"=5863768
echo Lidar_Clouds_NO_rd$i=$((Lidar_Clouds_NO_rd$i))
declare "Lidar_Clouds_HSRL_rd""$i"=5863769
echo Lidar_Clouds_HSRL_rd$i=$((Lidar_Clouds_HSRL_rd$i))
for i in `seq -w 03 04`
do
declare ""dependency_list_Merge_Clouds_rd"$i"=$((Lidar_Clouds_NO_rd$i))":"$((Lidar_Clouds_HSRL_rd$i))
echo dependency_list_Merge_Clouds_rd$i=$((dependency_list_Merge_Clouds_rd$i))
done |
Voici ce que j'obtiens à l'exécution :
un test rapide
1 2 3 4 5
| Lidar_Clouds_NO_rd03=5863766
Lidar_Clouds_HSRL_rd03=5863767
Lidar_Clouds_NO_rd04=5863768
Lidar_Clouds_HSRL_rd04=5863769
./rdiffm2_17_11.sh: ligne 24: 5863766:5863767 : erreur de syntaxe dans l'expression (le symbole erroné est «*:5863767*») |
alors qu'à la dernière ligne, le résultat que j'aurais aimé obtenir est:
1 2
| dependency_list_Merge_Clouds_rd03=5863766:5863767
dependency_list_Merge_Clouds_rd04=5863768:58637679 |
Je ne comprends pas bien l'origine du problème. Selon moi, l'opération a effectué serait une concaténation, j'ai bien essayé différentes syntaxes comme
declare ""dependency_list_Merge_Clouds_rd"$i"="$((Lidar_Clouds_NO_rd$i))":"$((Lidar_Clouds_HSRL_rd$i))"
mais je ne parviens pas à corriger l'erreur....
Je vous remercie par avance de votre aide, si vous pouviez m'expliquer l'origine de mon erreur ?
Partager