=====D&D Experience Calculations===== This script uses bc to calculate experience in Dungeons and Dragons Edition 3.5 based on the Challenge Rating of the encounter and the average Character Level of the party. #!/bin/bash # xpscript - D&D script for calculating experience from enounters based on CR of # the encounter and level of the party if [ $# == 0 ] then echo "Usage: $0 CR LV" | sed "s/\/.*\///g" exit fi cr=$1 lv=$2 test1=`echo "($cr-$lv)%2" | bc` if [ "$test1" == "0" ] #If CR-LV is even or 0 then xp=`echo "scale=5; $lv*300*sqrt(2)^($cr-$lv)" | bc | sed -e "s/\(\.[0-9]\).*/\1/g"` xp=`echo "($xp+0.1)/1" | bc` echo "$xp" else # CR-LV is odd cr1=`echo "$cr+1" | bc` cr2=`echo "$cr-1" | bc` xp2=`echo "scale=5; $lv*300*sqrt(2)^($cr1-$lv)" | bc | sed -e "s/\(\.[0-9]\).*/\1/g"` xp1=`echo "($xp1+0.1)/1" | bc` xp2=`echo "scale=5; $lv*300*sqrt(2)^($cr2-$lv)" | bc | sed -e "s/\(\.[0-9]\).*/\1/g"` xp2=`echo "($xp2+0.1)/1" | bc` xp=`echo "($xp1+$xp2)/2" | bc` echo $xp fi exit This script uses a lot of command expansions to do the calculations and variable declarations before finally using bc to calculate the results of the formula for the encounter experience. Not really an important script but goes to further show that bash is a powerful utility that can be used to do many things.