LINUX.ORG.RU

История изменений

Исправление Morin, (текущая версия) :

#!/bin/bash
n=0
var1=1099511627780
var2=$var1
for ((n; var2>=1024; n++))
do
var1=$(echo "scale=9; $var1/1024" | bc -l)
echo $var1
var2=$(echo "scale=0; $var2/1024" | bc -l)
done

так математически верней, если брать больше знаков после запятой, с другой стороны 9 знаков слишком избыточно для деления на 1024, тут уж смотри сам, не я тебе постановку задачи делаю

и обрати внимание, это не совсем округление, мы просто отбрасываем значение меньше чем кол-во знаков. по идее надо написать функцию округления для bc. но думаю этим займешся сам, если не будет лень

Исходная версия Morin, :

#!/bin/bash
n=0
var1=1099511627780
var2=$var1
for ((n; var2>=1024; n++))
do
var1=$(echo "scale=9; $var1/1024" | bc -l)
echo $var1
var2=$(echo "scale=0; $var2/1024" | bc -l)
done

так математически верней, если брать больше знаков после запятой, с другой стороны 9 знаков слишком избыточно для деления на 1024, тут уж смотри сам, не я тебе постановку задачи делаю