Cómo encontrar la suma de la capacidad total de df en bash cell [duplicate]

1 minuto de lectura

[*]
김태웅

Escribí un script para calcular la suma de los df capacidad total en el shell Bash de Linux. ¿Hay alguna manera de calcularlo sin crear un archivo?

#!/bin/bash

if [ -f /tmp/df_test.txt ]
then
    rm  tmp/df_test.txt
    echo "Remove files."
    else
    touch /tmp/df_test.txt
    echo "file creation."
        arr=(`df | awk -F " " '{print $2}' | sort -n | sed -e "1d"`)
        for i in ${arr[*]}
        do
            echo $i >>/tmp/df_test.txt 2>/dev/null
        done
fi
echo "ex) 1GB = 1000MB = 1000000KB"
echo "————————————————————————————————————"
cat /tmp/df_test.txt | awk '{sum+=$1; print$0} END {print"df total=KB)",sum} ' | sort -r | sed '2,$d'
echo "————————————————————————————————————"
rm /tmp/df_test.txt

También me gustaría hacer mi código más conciso, pero no tengo ideas.

  • Tu puedes hacer total=0; for i in ${arr[*]}; do let total += $i; done

    –Yuri Ginsburg

    18 de enero a las 6:06

  • gracias. Gracias a ti, podemos hacer más. arr=df -m | awk -F " " '{print $2}' | sed -e "1d";total=0;para i en ${arr[*]}; sea ​​total+=$i; hecho;echo $total

    – 김태웅

    18 de enero a las 15:21

Puede probar esto para obtener el uso total en unidades legibles por humanos

df --total --human | awk 'END {print $2}' 

¿Ha sido útil esta solución?