If I have
arr[0,0]=0;
arr[0,1]=1;
And I try
echo ${#arr[0,@]}
I got
bash: 0,@: syntax error: operand expected (error token is "@")
What is the correct way to get the size of the second dimension or arr
?
If I have
arr[0,0]=0;
arr[0,1]=1;
And I try
echo ${#arr[0,@]}
I got
bash: 0,@: syntax error: operand expected (error token is "@")
What is the correct way to get the size of the second dimension or arr
?
Multi-dimensional arrays are not supported in BASH.
Nevertheless, you could simulate them using various techniques.
The following definitions are the same:
arr[1,10]=anything
arr["1,10"]=anything
Both are evaluated to arr[10]=anything
(thanks chepner):
echo ${arr[10]}
anything
Bash doesn't have multi-dimensional array. What you are trying to do, won't even simulate a multi-dimensional array unless you have declared the arr
variable as an associative array. Check out the following test:
#!/bin/bash
arr[0,0]=0
arr[0,1]=1
arr[1,0]=2
arr[1,1]=3
echo "${arr[0,0]} ${arr[0,1]}" # will print 2 3 not 0 1
unset arr
declare -A arr
arr[0,0]=0
arr[0,1]=1
arr[1,0]=2
arr[1,1]=3
echo "${arr[0,0]} ${arr[0,1]}" # will print 0 1
And you can only get the size as a whole with ${arr[@]}