format_size() { local size=$1 # En Ko local units=("Ko" "Mo" "Go" "To" "Po") local unit_idx=0 local decimal=0 # Tant que la taille est >= 1024 et qu'il reste des unités while [[ $size -ge 1024 ]] && [[ $unit_idx -lt $((${#units[@]} - 1)) ]]; do # On calcule le reste pour avoir une décimale (multiplication par 100) # On simule scale=2 : (taille * 100 / 1024) local total_centiemes=$(( size * 100 / 1024 )) size=$(( total_centiemes / 100 )) decimal=$(( total_centiemes % 100 )) ((unit_idx++)) done # Formatage de la sortie if [[ $decimal -eq 0 ]]; then echo "${size}${units[$unit_idx]}" else # On s'assure que le decimal a toujours 2 chiffres (ex: 05 au lieu de 5) printf "%d.%02d%s\n" "$size" "$decimal" "${units[$unit_idx]}" | sed 's/\.00//; s/0$//' fi } pause() { echo "" msg_info "Appuyez sur une touche pour continuer..." read -n 1 -s -r } is_sys_lxc() { grep -qa container=lxc /proc/1/environ 2>/dev/null }