Есть массив с путями и цикл его переберающий (песочница):
paths=(
"~/.config/sublime-text-3/Installed Packages"
~/.config/sublime-text-3/Local
~/.config/sublime-text-3/Packages
)
for path in ${paths[@]}
do
echo ${path}
done
Результат:
~/.config/sublime-text-3/Installed
Packages
/home/cg/root/.config/sublime-text-3/Local
/home/cg/root/.config/sublime-text-3/Packages
В результате видно, что возникает проблема с пробелом в пути ~/.config/sublime-text-3/Installed Packages и Packages воспринимается как элемент массива.
Как её можно исправить?
Единственное, что пришло в голову, это экранировать пробел:
paths=(
~/.config/sublime-text-3/Installed\ Packages
~/.config/sublime-text-3/Local
~/.config/sublime-text-3/Packages
)
Но результат тот же.
P. S. Если код в песочнице не работает, то нужно очистить куки; по крайней мере у меня возникали какие-то проблемы в Chrome с этим.
Ответ
можно поместить в двойные кавычки подстановку массива:
for path in "${paths[@]}"
да и при обращении к отдельным строкам двойные кавычки не помешают (чтобы опять-таки не столкнуться с разделением на подстроки по пробелам):
"${path}"
Комментариев нет:
Отправить комментарий