Вопрос по directory, arrays, bash – Как я могу сохранить список каталогов в массиве?
====================================================================================

Почему это ничего не перечисляет? Спасибо

 вы также можете сделать что-то вроде



`while` выполняется в дочерней оболочке и не может изменять родительские переменные, в этом случае`FOLDER`, Вы должны попробовать другие способы. Например:

(напечатает второй файл там)

**NOTE**Да, я понимаю проблемы этого решения, пробелы, использование`ls`и т.д. Я просто хотел указать на проблему с`while`, Чтобы завершить ответ, да, следует использовать сглаживание:

И, не умирая от пуризма, обычный (по крайней мере в UNIX)NOT пробелы в именах файлов. Это вредно для вашего здоровья :)



Analysis

Don't parse the output of `ls`.
Don't assume every entry in a directory is a directory.
Don't append arrays in a loop without a good reason.
Don't use unquoted variables.
Use Shell Globs
Предполагая, что каждая запись в / tmp / backup является каталогом, вы можете просто использовать глобусы оболочки для заполнения вашего массива. Если у вас могут быть как файлы, так и записи в каталоге, вам необходимо использоватьfind или используйте тестовое выражение оболочки, чтобы убедиться, что запись действительно является каталогом. Например:



 одной из проблем с кодом выше является изменение переменной в подоболочке. Другой использует`+=` заполнить массив. К сожалению, это просто добавляет к нулю элемент в виде строки, так что`FOLDERS[1]` остается неопределенным