#!/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
Podczas pracy nad scenariuszem uzyskać następujące dane wyjściowe debugowania:Zmienna jako indeks tablicy 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
Dlaczego zmienna $ array_counter nie rozszerzać, gdy używany jako indeks w tablicy []?
Co prawda robi, że można się spodziewać? Po twojej pętli tablica jest "1 1 1" –
Spodziewam się, że wynik debugowania będzie pokazywał tablicę [0] = 1, tablica [1] = 1 i tak dalej. –
ah, martwisz się tylko wyjściem debugowania. Naprawdę jestem zaskoczony, że działa bez "ewaluacji", ale możliwe, że tablice LHS są inaczej rozwijane. –