Loop в bash для создания десятичного числа

Как сгенерировать числа

0.01, 0.02, 0.03 ... until 0.2

в bash?

Я запустил этот пример, но он не работает

#!/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
задан 15 May 2012 в 21:21

21 ответ

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
ответ дан 25 July 2018 в 18:54

Следующий сценарий дает вам выход, такой как

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
ответ дан 25 July 2018 в 18:54

Простой и легкий:

seq BEGIN STEP END

пример:

seq 0.0 0.1 2.0

или (по умолчанию +1)

for i in `seq 1 30`; do echo student$i; done
6
ответ дан 25 July 2018 в 18:54

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
ответ дан 2 August 2018 в 01:02

Следующий сценарий дает вам выход, такой как

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
ответ дан 2 August 2018 в 01:02

Простой и легкий:

seq BEGIN STEP END

пример:

seq 0.0 0.1 2.0

или (по умолчанию +1)

for i in `seq 1 30`; do echo student$i; done
6
ответ дан 2 August 2018 в 01:02

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
ответ дан 4 August 2018 в 16:34

Следующий сценарий дает вам выход, такой как

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
ответ дан 4 August 2018 в 16:34

Простой и легкий:

seq BEGIN STEP END

пример:

seq 0.0 0.1 2.0

или (по умолчанию +1)

for i in `seq 1 30`; do echo student$i; done
6
ответ дан 4 August 2018 в 16:34

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
ответ дан 6 August 2018 в 01:14

Следующий сценарий дает вам выход, такой как

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
ответ дан 6 August 2018 в 01:14

Простой и легкий:

seq BEGIN STEP END

пример:

seq 0.0 0.1 2.0

или (по умолчанию +1)

for i in `seq 1 30`; do echo student$i; done
6
ответ дан 6 August 2018 в 01:14

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
ответ дан 7 August 2018 в 18:39

Следующий сценарий дает вам выход, такой как

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
ответ дан 7 August 2018 в 18:39

Простой и легкий:

seq BEGIN STEP END

пример:

seq 0.0 0.1 2.0

или (по умолчанию +1)

for i in `seq 1 30`; do echo student$i; done
6
ответ дан 7 August 2018 в 18:39

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
ответ дан 10 August 2018 в 07:19

Следующий сценарий дает вам выход, такой как

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
ответ дан 10 August 2018 в 07:19

Простой и легкий:

seq BEGIN STEP END

пример:

seq 0.0 0.1 2.0

или (по умолчанию +1)

for i in `seq 1 30`; do echo student$i; done
6
ответ дан 10 August 2018 в 07:19

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
ответ дан 15 August 2018 в 19:20

Следующий сценарий дает вам выход, такой как

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
ответ дан 15 August 2018 в 19:20

Простой и легкий:

seq BEGIN STEP END

пример:

seq 0.0 0.1 2.0

или (по умолчанию +1)

for i in `seq 1 30`; do echo student$i; done
6
ответ дан 15 August 2018 в 19:20

Другие вопросы по тегам:

Похожие вопросы: