|If your script works the way it is, fine; but you asked for efficiency changes so here|
is my take:
1) If you want the ls command output objects to be on one line, make sure to use a -1 option such as this: ls -1A
2) I would use a while loop instead of a for loop. If the output of the ls command has more than one column you would have a problem. For more info tatke a look at this link:
3) You really should surround the arguments to the tr command with quotes. Note that I optionally use the newer syntax - lower and upper .
ls -1A |while read i
case "$i" in
echo "-Ignoring $i!";;
newname=`echo "$i"| tr "[:lower:]" "[:upper:]"`
echo "-----Moving $i to $newname"
mv "$i" $newname;;