Таким образом, a для l oop в bash аналогично модели python (или, может быть, наоборот?).
Модель выглядит как "например, в списке":
for some_instance in "${MY_ARRAY[@]}"; do
echo "doing something with $some_instance"
done
Чтобы получить список файлов в каталоге, быстрый и грязный способ состоит в том, чтобы проанализировать вывод ls
и преобразовать его в массив, а-ля array=($(ls))
Чтобы быстро объяснить, что происходит здесь, насколько мне известно, назначение переменной для строки, разделенной пробелом, заключенной в скобки, разделяет строку и превращает ее в список.
Недостатком синтаксического анализа ls является то, что он не учитывает файлы с пробелами в их именах. Для этого я оставлю вам ссылку на превращение содержимого каталога в массив , то же самое место, которое я с любовью :) сорвал с оригинальной команды array=($(ls -d */))
.