web-dev-qa-db-ja.com

bashでループして10進数を作成する

数値を生成する方法

0.01, 0.02, 0.03 ... until 0.2

バッシュで?

この例を実行しますが、動作しません

#!/bin/bash
#
# Script for running several experimentations one the same JVM
#

for ((i = 0; i < 0.1; i += 0.01))
do
echo $i
done 
3
user1149157

シンプルで簡単:

seq BEGIN STEP END

例:

seq 0.0 0.1 2.0

または(デフォルト+1)

for i in `seq 1 30`; do echo student$i; done
7
us3r

次のスクリプトは、次のような出力を提供します

0.01, 0.02, 0.03 ... until 0.2

/

#!/bin/bash
for ((i=0; i < 20; i += 1))
do
        echo "scale=2; ${i}/100" | bc
done
2
OrangeTux

Bashは浮動小数点数ではなく整数でのみ計算できるため、awkやbcなどの別の言語を使用するか、問題を整数領域にシフトする必要があります。

Awkの場合:

awk 'BEGIN{ for (i=0.0; i < 0.2; i+=0.01) printf("%.2f\n", i); }'

Bashでは、整数を使用します

for ((i=0; i < 20; i++)); do
    printf "%d.%02d\n" $((i/100)) $((i%100))
done
0
geirha