Multiplicar com números decimais em bash [closed]

1

Quando eu corro

p=0.1
k=2
while [ $p \< 1 ]
do
    echo $p
    p=$(echo "scale=2; $p*$k" | bc)
done

eu tenho esse resultado

0.1
.2
.4
.8

O que posso fazer para ter 0,1, 0,2, 0,4 e 0,8?

    
por user15992 20.11.2012 / 16:32

2 respostas

3

Use printf em vez de echo para formatá-lo:

printf %0.1f\n $p

Saída:

$ p=0.1; k=2
$ while [ $p \< 1 ]; do     printf %0.1f\n $p ;     p=$(echo "scale=2; $p*$k" | bc); done
0.1
0.2
0.4
0.8
    
por Ian B. 20.11.2012 / 17:04
1

Eu usaria seq e printf para resolver o meu problema. verifique isso:

for i in $(seq .1 .2 1); do printf "%0.1f\n" "$i"; done

Talvez isso ajude você a continuar.

    
por dre 20.11.2012 / 17:10