Вы добавляете pwd, даже если пользователь ввел абсолютный путь. Попробуйте это:
case "$fileName" in
/*) ;; # okay
*) fileName=`pwd`/"$fileName"
esac
Это будет только перед pwd, если fileName не начинается с /.
Кроме того, ваш if
тест будет успешным, только если fileName является обычным файлом. Если вы хотите, чтобы это было успешно для каталогов и т.п., протестируйте с -e
вместо -f
.