#!/bin/bash
# *****************************************************************
# Diese Funktion vergleicht die Groesse einer Datei. Die Funktion
# erwartet 2 Parameter. Der erste Parameter ist die ermittelte
# Groesse der Datei (byte). Der zweite Parameter das Limit, wie
# gross die Datei sein kann (KB,MB,GB).
function checkSize() {
local size=$1
local maxsize=$2
local unit=$( echo $maxsize | sed 's/[^A-Z]//g' | sed 's/\,/\./g' )
local msize=$( echo $maxsize | sed 's/[A-Z]//g' | sed 's/\,/\./g' )
# Je nachdem, welche Einheit ermittelt wurde, werden
# die Bytes auf die jeweilige Einheit hochgerechnet.
if [ "$unit" = "GB" ]; then
size=$( perl -e 'printf("%.2f", ('$size'/1024));' )
size=$( perl -e 'printf("%.2f", ('$size'/1024));' )
size=$( perl -e 'printf("%.2f", ('$size'/1024));' )
cursize=$size
elif [ "$unit" = "MB" ]; then
size=$( perl -e 'printf("%.2f", ('$size'/1024));' )
size=$( perl -e 'printf("%.2f", ('$size'/1024));' )
cursize=$size
elif [ "$unit" = "KB" ]; then
size=$( perl -e 'printf("%.2f", ('$size'/1024));' )
cursize=$size
else
cursize=$size
fi
# Gibt 1 zurueck, wenn die Datei groesser als maxsize ist.
local result=$( perl -e 'print 1 if ('$cursize' > '$msize');' )
# Ist die Datei groesser, wird die Groesse ausgegeben.
if [ "$result" = "1" ];
echo -n ${cursize}${unit} | sed 's/\./\,/'
else
echo "0"
fi
}
# ermittelte Groesse (Byte)...
size="123456789"
erg=$( checkSize "$size" "1,5GB" )
if [ "$erg" -gt 0 ]; then
echo "Datei ist $erg und somit zu Gross!"
fi