Назад | Перейти на главную страницу

Вычисление процента от общей доступной памяти в Linux как целого числа в bash

Вот сценарий bash, который вычисляет 80% всей доступной оперативной памяти в виде целого числа в системе Linux:

server_ram_mb=$(awk '/MemTotal/ {printf( "%.2f\n", $2 / 1024)}' /proc/meminfo)
echo "($server_ram_mb * 0.8)/1" | bc > /tmp/output
eighty_percent_ram_mb=$(cat /tmp/output)

Однако есть несколько вещей, которые мне в этом не нравятся:

Как я могу переписать / упростить это, чтобы избежать этих проблем?

eighty_percent_ram_mb=$(free -m | awk 'NR==2{printf "%d", $2*0.8 }')

Должен сработать :)

Кто-то только что написал мне об этом в Твиттере!

eighty_percent_ram_mb=$(free -m | awk 'NR==2{printf "%.0f\n", $2*0.8 }')

Я попробовал, и это сработало.