Voici un bash script qui calcule 80% de la RAM totale disponible comme un entier sur une boîte 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)
Cependant, il y a certaines choses que je n'aime pas à ce sujet :
- Il écrit dans un fichier temporaire (j'ai essayé de le mettre dans une variable mais je n'ai pas réussi à dépasser les problèmes de syntaxe).
- Il faut
bc
qui n'est pas installé par défaut sur toutes les distributions Linux.
Comment puis-je réécrire/simplifier ceci pour éviter ces problèmes ?