here's what I tried:
n=0
for i in aaa bbb ccc; do
array${i}[$n]=$(date "+%N")
((++n))
done
n=0
for i in aaa bbb ccc; do
echo ${array${i}[$n]}
((++n))
done
any ideas how to make the dynamic array name work? thanks a lot!
You can use indirect expansion:
#!/bin/bash
# create the arrays
n=0
for i in aaa bbb ccc; do
let array$i[$n]=$(date "+%N")
((++n))
done
# display what we did
n=0
for i in aaa bbb ccc; do
var=array$i[$n]
echo ${!var}
((++n))
done
Note that this will only create array variables arrayaaa[0], arraybbb[1] and arrayccc[2], and not (as you might expect) arrayaaa[0], arrayaaa[1], arrayaaa[2], arraybbb[0], arraybbb[1], arraybbb[2], arrayccc[0], arrayccc[1], and arrayccc[2].
Take refuge of eval:
n=0
for i in aaa bbb ccc; do
eval "array${i}[$n]=$(date "+%N")"
((++n))
done
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With