Bonjour ,

Je souhaite comparer deux réels à chaque tour de la boucle "while".
Cependant , j'ai un problème de syntaxe pour gérer les réels.
Je sais que cela se fait avec la commande "bc".
Je code rarement des scripts bash donc cela serait sympa de développer un peu vos réponses s'il vous plait.


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
 
#!/bin/bash
 
pval=( 10^-6 10^-5 10^-4 10^-3 ) 
li=( 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 )
lr=( -0.1 -0.2 -0.3 -0.4 -0.5 -0.6 -0.7 -0.8 -0.9 -1.0 -1.1 -1.2 -1.3 -1.4 -1.5 -1.6 )
 
i=0
j=0
 
for k in "${pval[@]}"; do
 
    while [ ("${li[i]}"| bc) -ne ("${li[16]}"| bc) ] && [ ("${lr[j]}"| bc) -ne ("${lr[16]}"| bc) ]
    do 
           #./Select.R ${li[i]} ${lr[j]} $k
           echo  ${li[i]} ${lr[j]} $k
           i=$(($i+1))
           j=$(($j+1))
    done
i=0
j=0
 
done
Cela bloque aussi au niveau des "done". Je pense que la réinitialisation de i et de j pose problème.

Merci