whats wrong in this pls help how to take $i value ?

for i in `cat rgu`
do
echo $i
sed -e '/LABEL=$i/,/fi/d' g_scripts > g_scripts2
cat g_scripts2 > g_scripts
done

$i in sed

use

sed "s/.../" filename

It's not only the $i in sed, your approach is wrong. You're deleting a section of g_scripts, redirect the output to g_scripts2 and overwrite g_scripts with g_scripts2.

Regards

The Part that I have said I think its right and Franklin52 you are right that OP's approach is dangerous unless the files are of small size.