Я пытаюсь выполнить итерацию через n-мерное пространство с серией вложенных for-loops в bash.Выполнение произвольного числа вложенных циклов в bash
VAR1="a b c d e f g h i"
VAR2="1 2 3 4 5 6 7 8 9"
VAR3="a1 b2 b3 b4 b5 b6"
for i1 in $VAR1; do
for i2 in $VAR2; do
for i3 in $VAR3; do
echo "$i1 $i2 $i3"
done
done
done
Теперь, когда я получаю больше размеров перебирать, я понимаю, что это было бы легче/лучше, чтобы иметь возможность задать произвольное число переменных перебрать.
Если бы я использовал более сложный язык программирования, я мог бы использовать рекурсию для передачи списка списков функции, выпадающего списка, перебора по нему, рекурсивного вызова функции каждый раз через цикл, передачи теперь сокращенный список списков и сборка n-кортежей, когда я иду.
(я пытался псевдокод, что это будет выглядеть, но больно мне голова думать о рекурсии и построение списков.)
function iterate_through(var list_of_lists)
this_list=pop list_of_lists
var new_list = []
for i in this_list
new_list.push(i)
new_list.push(iterate_through(list_of_lists))
# return stuff
# i gave up about here, but recursion may not even be necessary
Кто-нибудь есть предложение о том, как выполнить итерацию через произвольное число vars в bash? Имея в виду, цель состоит в том, чтобы итерации через все n-мерное пространство, и что итерация не обязательно является частью решения.