这里是一个bash脚本,它计算Linux机器上可用整数的80%的整数:
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)
不过,有几件事我不喜欢:
bc ,这在所有Linux发行版中都没有默认安装 如何重写/简化这个以避免这些问题?
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 }')
我试了一下,它的工作。
随着GNU bash 4:
declare -i eighty_percent_ram_mb # set integer attribute while read -rabc; do [[ $a =~ ^MemTotal: ]] && mem=$b; done < /proc/meminfo eighty_percent_ram_mb=$mem/100*80/1024