Shell Arrays
Shell arrays can hold multiple values,Bash shell only support one-dimensional values(can not support multi-dimensional) .We don’t need to define array size during initialization (similar to PHP).The subscripts of array elements start from 0 which is similar to most programming languages.
We can use parentheses to indicate the arrays, and the array elements are separated by “space” symbol.
array_name=(value1 ... valueN)
For exmple:
#!/bin/bash
# author:ylspirit
# url:www.linuxcommands.site
my_array=(A B "C" D)
We can also use subscripts to define arrays:
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2
Accessing Array Values
After you have set any array variable, you access it as follows
${array_name[index]}
For example:
#!/bin/bash
# author:ylspirit
# url:www.linuxcommands.site
my_array=(A B "C" D)
echo "the first element: ${my_array[0]}"
echo "the second element: ${my_array[1]}"
echo "the third element: ${my_array[2]}"
echo "the forth element: ${my_array[3]}"
Execute the script and the output as follows:
$ chmod +x test.sh
$ ./test.sh
the first element: A
the second element: B
the third element: C
the forth element: D
Accessing All Array Values
We can use @ or * to access all array element values.For example:
#!/bin/bash
# author:ylspirit
# url:www.linuxcommands.site
my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D
echo "array element values are: ${my_array[*]}"
echo "array element values are: ${my_array[@]}"
Execute the script and the output as follows:
$ chmod +x test.sh
$ ./test.sh
array element values are: A B C D
array element values are: A B C D
Array Length
The method to obtain the length of the array is the same as the string’s, for example:
#!/bin/bash
# author:ylspirit
# url:www.linuxcommands.site
my_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=D
echo "the length of the array is: ${#my_array[*]}"
echo "the length of the array is: ${#my_array[@]}"
Execute the script and the output as follows:
$ chmod +x test.sh
$ ./test.sh
the length of the array is: 4
the length of the array is: 4