Необходимо преобразовать байты в ГБ, МБ, КБ в обычном десятичном формате.

Missing Loop Conditional

Ваш синтаксис неверен. У вас могут быть и другие проблемы с кодом, но это сообщение, скорее всего, вызвано тем, что вы не можете использовать ключевое слово do как блок; вам необходимо иметь одно из условий цикла.

В настоящее время у вас есть:

        *)
            do
                test -n '$folder' && echo You chose: $REPLY\) $folder && break;
                echo 'Wrong entry, try again.';
                continue;
            done;
            ;;

Вам не хватает ключевого слова for, while или until для начала цикла.

4
23.02.2017, 09:13
4 ответа

Я не тестировал, но думаю, это как-то связано с тем, что вы загружаете bc mathlib с помощью bc -l .

Попробуйте изменить часть вычисления awk для ГБ на:

awk '{byte = $ 1/1024/1024/1024; print byte "GB"} '

Примечание: 1024/1024 ** 2 эквивалентно 1024/1024/1024 в awk .

7
27.01.2020, 20:52
> printf "1GiB\\nMB" | units
Currency exchange rates from finance.yahoo.com on 2017-10-31 
3047 units, 109 prefixes, 109 nonlinear units

You have: You want:     * 1073.7418
        / 0.00093132257
You have:

или

> echo $((1024*1024*1024))
1073741824
>   

См. также:человек 7 ед.

ХТХ

2
27.01.2020, 20:52

Поскольку это Linux, я удивлен, что -никто не упомянул команду numfmt:

numfmt - Convert numbers from/to human-readable strings

>>numfmt --to iec --format "%8.4f" 599511627776
558.3388G
26
15.03.2020, 10:53

Сделал для этого небольшой кли.

https://github.com/gonejack/hsize

> hsize 123 45678
123 => 123B
45678 => 44.61KB
> echo 19129219219129119 | hsize
19129219219129119 => 16.99PB
0
06.11.2020, 09:32

Теги

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