Чтобы перебрать индексы массива, используйте
for i in "${!dir_path[@]}" ; do
# ^
Чтобы проверить, существует ли файл, используйте [ -f "${dir_path[i]}" ]
(для массива или то же самое с $i
для ассоциативного массива),То, что у вас есть, всегда верно, поскольку оно проверяет, не является ли строка "$dir_path[i]"
не пустой, которой она никогда не является, поскольку она всегда содержит по крайней мере [i]
.