Это утверждение должно работать правильно:
if [ "${uc,,}" != "y" ]
Объяснение: Когда uc
пуст, ваш тест расширен оболочкой следующим образом:
if [ != "y" ]
а с кавычками -
if [ "" != "y" ]
Правило большого пальца: Всегда используйте кавычки вокруг переменных shell, содержащих строки, при их расширении; они могут содержать пробелы или быть пустыми, что при отсутствии кавычек часто сбивает с толку команду, которой они передаются (слишком много или отсутствуют параметры).