Есть скрипт. В нем есть массив с путями к файлам и в одном из путей есть пробелы.
Я перебираю все пути из массива и каждый путь передаю в функцию в качестве единственного аргумента и выполняю функцию:
for path in ${pathes[@]}; do
myfunc "$path"
done
И в ходе выполнения скрипта появлялась ошибка
Can't open <часть пути к файлу>: No such file or directory.
Потом я выполнил перебор массива иначе, чтобы в цикле перебирались индексы массива, а потом я в функцию передаю элемент указывая массив с индексом:
for i in ${!pathes[@]}; do
myfunc "${pathes[i]}"
done
Тогда код выполняется без проблем.
Вопросы:
Почему первый вариант выполняется с ошибкой?
При выполнении первого и второго вариантов в качестве аргумента к функции поступают разные значения?