#!/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
Wenn Skript auszuführen ich die folgende Debug-Ausgabe erhalten:Variable als Bash-Array-Index?
+ 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
Warum wird die Variable $ array_counter nicht erweitern, wenn sie als Index in Array verwendet []?
Was ist es nicht, dass Sie erwarten, zu tun? Nach Ihrer Schleife, Array ist "1 1 1" –
Ich würde erwarten, dass die Debug-Ausgabe Array [0] = 1, Array [1] = 1 und so weiter. –
ach, du bist nur besorgt über die Debug-Ausgabe. Ich bin eigentlich überrascht, dass es überhaupt ohne 'eval' funktioniert, aber es könnte sein, dass lhs-Arrays unterschiedlich expandiert sind. –