Linux Math

|^^|

$ echo "scale=2 ; 3000 / 30001" | bc

Converting Numeric Values | The basics are pretty easy:

kilo="$(( $value / 1024 ))" mega="$(( $kilo / 1024 ))" giga="$(( $mega / 1024 ))"

kilo=$( echo "scale=2; $value / 1024" | bc ) kiloint=$( echo "$value / 1024" | bc ) mega=$( echo "scale=2; $kilo / 1024" | bc ) megaint=$( echo "$kilo / 1024" | bc ) giga=$( echo "scale=2; $mega / 1024" | bc ) gigaint=$( echo "$mega / 1024" | bc ) if [ $kiloint -lt 1 ] ; then echo "$value bytes" elif [ $megaint -lt 1 ] ; then echo "${kilo}KB" elif [ $gigaint -lt 1 ] ; then echo "${mega}MB" else echo "${giga}GB" fi

RELATED SOURCE:

http://www.ixbrian.com/blog/?tag=linux-aix-storage

Here is a diagram that summarizes this:

[rex@ssi ~]$ echo "(1024*1024)" | bc 1048576 [rex@ssi ~]$ echo "(1024*1024*1024)" | bc 1073741824 [rex@ssi ~]$ echo "(54183672092/1073741824)" | bc 50 [rex@ssi ~]$ echo "(1*1024)" | bc 1024 [rex@ssi ~]$ echo "(1*1024*1024)" | bc 1048576 [rex@ssi ~]$ echo "(1*1024*1024*1024)" | bc 1073741824 [rex@ssi ~]$ echo "(1*1024*1024*1024*1024)" | bc 1099511627776 [rex@ssi ~]$ echo "(1099511627776/1024/1024/1024/1024)" | bc 1

eof