В Bash невозможно создать настоящие многомерные массивы. Однако аналогичного эффекта можно добиться, используя массивы массивов или ассоциативные массивы. Я объясню оба подхода:
-
Массивы массивов:
Вы можете создать массив, каждый элемент которого сам по себе является массивом. Вот пример:# Declare a 2D array declare -a myArray myArray[0]=(1 2 3) myArray[1]=(4 5 6) myArray[2]=(7 8 9) # Iterate over the 2D array for ((i=0; i<${#myArray[@]}; i++)); do for ((j=0; j<${#myArray[i][@]}; j++)); do echo "${myArray[i][j]}" done done -
Ассоциативные массивы:
Bash также поддерживает ассоциативные массивы, которые позволяют использовать строки в качестве индексов. Вот пример:# Declare an associative array declare -A myArray myArray["row1"]=(1 2 3) myArray["row2"]=(4 5 6) myArray["row3"]=(7 8 9) # Iterate over the associative array for row in "${!myArray[@]}"; do for element in "${myArray[$row][@]}"; do echo "$element" done done
Это два распространенных подхода к моделированию многомерных массивов в Bash. Помните, что Bash в первую очередь предназначен для написания сценариев и не идеален для сложных структур данных. Если вы работаете с более сложными данными, возможно, вам стоит рассмотреть возможность использования другого языка программирования.