Difference between revisions of "Bash array"

From thelinuxwiki
Jump to: navigation, search
(Accessing arrays)
Line 9: Line 9:
 
   ${array[@]}        # All items of array (separate words, add quotes if words have spaces)
 
   ${array[@]}        # All items of array (separate words, add quotes if words have spaces)
 
   ${!array[*]}        # All of the indexes in the array
 
   ${!array[*]}        # All of the indexes in the array
   ${#array[*]}        # Number of items in the array
+
   ${#array[*]}        #Number of items in the array
 +
  or ${#array[@]}  ???
 
   ${#array[0]}        # Length of item zero
 
   ${#array[0]}        # Length of item zero
  

Revision as of 02:17, 20 July 2013

Arrays do not to be declared. Bash allows on dimensional arrays.


Accessing arrays

where array = array name

 ${array[*]}         # All of the items in the array (single word)
 ${array[@]}         # All items of array (separate words, add quotes if words have spaces)
 ${!array[*]}        # All of the indexes in the array
 ${#array[*]}        #Number of items in the array
 or ${#array[@]}  ???
 ${#array[0]}        # Length of item zero


more info

Example Array 1:

 #!/bin/bash
 function test_function {
   color[1]=red           # <<< array assignments
   color[2]=white         # <<< array assignments
   color[3]=blue          # <<< array assignments
   # Using brace expansion ...
   # Bash, version 3+.
   for a in {1..3}
   do
     echo "${color[$a]}"    #<<<  curly braces needed !!!!
   done
 }
 #main body
 test_function # the function msut be invoked below or after it is defined

Example Array 2

 #!/bin/bash
 function test_function {
   color=( zero one two three )           # <<< array assignments
    # Using brace expansion ...
       # Bash, version 3+.
  for a in {1..3}
     do
          echo "${color[$a]}"    #<<<  curly braces needed !!!!
     done
      }
 #main body
 test_function # the function msut be invoked below or after it is defined
 echo "original_array = ${color[@]}"

List all elements of original array.

 echo "original_array = ${original_array[@]}"


Get array length

echo ${#distro[@]}