adding text to filename before extension
Using standard POSIX parameter expansion:
for f in *.shp; do printf '%s\n' "${f%.shp}_poly.shp"; done
Sometimes there is a tool called "rename" installed.
rename 's/\.shp$/_poly.shp/' *shp
It might not be portable but it is easy to use.
Use this:
for file in *.shp; do echo $(basename $file .shp)_poly.shp; done