Это гораздо больше подходит для цикла for, чем для цикла while. Таким образом, вы также можете избавиться от ненужного сохранения результатов из find -iname '*.zip' > zipindex
Вместо этого сделайте что-то вроде этого:
#!/bin/bash
for zip in $(find -iname '*.zip'); do
unzip -o $zip
done
Это будет перебирать все строки, которые производит find.
Конечно, вы должны просто отказаться от bash-скрипта вообще и сделать такую строку find oneliner:
find -iname '*.zip' -execdir unzip {} ;
EDIT: Благодаря @don_crissti и @ilkkachu, мне удалось избавиться от вызова другого экземпляра оболочки в -exec. -execdir полезно знать!