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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 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 ?