#!/bin/bash
set -x
array_counter=0
array_value=1
array=(0 0 0)
for number in ${array[@]}
do
array[$array_counter]="$array_value"
array_counter=$(($array_counter + 1))
done
Cuando se ejecuta por encima de la escritura me sale el siguiente resultado de la depuración:Variable como índice de matriz bash?
+ array_counter=0
+ array_value=1
+ array=(0 0 0)
+ for number in '${array[@]}'
+ array[$array_counter]=1
+ array_counter=1
+ for number in '${array[@]}'
+ array[$array_counter]=1
+ array_counter=2
+ for number in '${array[@]}'
+ array[$array_counter]=1
+ array_counter=3
¿Por qué la variable $ array_counter no ampliar cuando se utiliza como índice en array []?
¿Cómo es no hacer que usted espera? Después de su ciclo, la matriz es "1 1 1" –
Esperaría que la salida de depuración muestre la matriz [0] = 1, la matriz [1] = 1 y así sucesivamente. –
ah, solo te preocupa la salida de depuración. De hecho, me sorprende que funcione sin un 'eval', pero podría ser que las matrices lhs se expandan de forma diferente. –