#!/bin/rc rfork e fn h2d { echo 'ibase=16;' print `{echo $1|tr a-z A-Z} |bc } fn swap { echo $1 | sed 's/(..)(..)(..)(..)/\4\3\2\1/' } fn df { echo -n $1 '' blksz=`{xd -c $1 |grep 110 |sed 1q | sed 's/^....... (.) (.) (.) (.).*/\1\2\3\4/'} info=`{dd -bs $blksz -iseek 1 -count 1 < $1 >[2]/dev/null | xd -l | sed 1q} total=$info(3) free=$info(4) if(~ $cputype 386) { total=`{swap $total} free=`{swap $free} } total=`{h2d $total} free=`{h2d $free} totalb=`{hoc -e $total^'*'^$blksz} freeb=`{hoc -e $free^'*'^$blksz} echo $free / $total '*' $blksz '=' $freeb / $totalb } disk=`{ls /dev/sd??/fs /dev/sd??/other >[2]/dev/null} if(~ $#disk 0) { echo no disk found exit 'no disk' } for(i in $disk) df $i