考え出した...答えは、doループ内にある間にスクリプトに2番目のスクリプトを書き出すことでした。これが最終的なスクリプトです...
#!/system/bin/sh
l_count=0
cd /sdcard/themes
echo "#!/system/bin/sh" > /sdcard/themes/themer_tmp.sh
echo "echo 'Pick a theme:'" >> /sdcard/themes/themer_tmp.sh
echo "read choice" >> /sdcard/themes/themer_tmp.sh
echo case '$choice' in >> /sdcard/themes/themer_tmp.sh
ls *.zip|while read l_file
do
l_count=`expr $l_count + 1`
echo "${l_count}. ${l_file}"
echo "${l_count})" >> /sdcard/themes/themer_tmp.sh
echo echo '"boot-recovery" > /cache/recovery/command' >> /sdcard/themes/themer_tmp.sh
echo echo '"--update_package=/sdcard/themes/'${l_file}'"' '>> /cache/recovery/command' >> /sdcard/themes/themer_tmp.sh
echo echo '"--wipe_cache" >> /cache/recovery/command' >> /sdcard/themes/themer_tmp.sh
echo echo '"reboot"' '>> /cache/recovery/command' >> /sdcard/themes/themer_tmp.sh
echo "reboot recovery" >> /sdcard/themes/themer_tmp.sh
echo ";;" >> /sdcard/themes/themer_tmp.sh
done
echo "esac" >> /sdcard/themes/themer_tmp.sh
sh /sdcard/themes/themer_tmp.sh
これが、同様の解決策を探している他の人に役立つことを願っています