UsiScript
create a 2 dimensional array
Code
# Create an array with 2 dimensions declare -A array_name array_name[0,0]="degrees" array_name[0,1]="city" array_name[0,2]="date" array_name[1,0]="28" array_name[1,1]="Paris" array_name[1,2]="13/07/2022" array_name[2,0]="32" array_name[2,1]="Bordeaux" array_name[2,2]="12/07/2022" # In one line #declare -A array_name=([0,0]="degrees" [0,1]="city" [0,2]="date" [1,0]="28" [1,1]="Paris" [1,2]="13/07/2022" [2,0]="32" [2,1]="Bordeaux" [2,2]="12/07/2022") # Print all the elemets num_rows=3 num_columns=3 for ((i=0;i<=num_rows;i++)) do for ((j=0;j<=num_columns;j++)) do echo -n ${array_name[$i,$j]}" " done echo done
delete a 2 dimensional array
Code
# Delete an element (here, the 4th line, 1st element) unset array_name[3,0] # Delete a complete lines (with all the colunm, all the elements in the line) unset array_name[3,0] unset array_name[3,1] unset array_name[3,2] # The same, with a loop for num_line=3 num_columns=3 for ((j=0;j<=num_columns;j++)) do unset array_name[$num_line,$j] done # Delete the array unset array_name
print a 2 dimensional array
Code
# Access annd read the first element echo ${array_name[0,0]} # Print out all the elemets , display in one line echo ${array_name[*]} # Use a for loop, to display the elements num_rows=4 num_columns=3 for ((i=0;i<=num_rows;i++)) do for ((j=0;j<=num_columns;j++)) do echo -n ${array_name[$i,$j]}" " done echo done
update a 2 dimensional array
Code
# Create an array with 2 dimensions #declare -A array_name=([0,0]="degrees" [0,1]="city" [0,2]="date" [1,0]="28" [1,1]="Paris" [1,2]="13/07/2022" [2,0]="32" [2,1]="Bordeaux" [2,2]="12/07/2022") # Update the array, add a new line array_name+=([3,0]="26" [3,1]="Lille" [3,2]="15/07/2022") # Update the array : modify in the 2nd line, the 1st element, array_name[1,0]="27" # Show the result = Print all the array elements num_rows=4 num_columns=3 for ((i=0;i<=num_rows;i++)) do for ((j=0;j<=num_columns;j++)) do echo -n ${array_name[$i,$j]}" " done echo done
create a simple array
Code
# Create a simple array, one dimension # declare -a array_name #array_name=(value1 value2 value3) declare -a files files=("f1.txt" "f2.txt" "f3.txt" "f4.txt" "f5.txt") # Associative arrays can be created using the -A option of the declare # declare -A my_array # Print out all the elemets echo ${files[*]} # Print the number of elements in the array files echo ${#files[@]}
print a simple array
Code
# Access annd read the first element echo ${files[0]} # Print all the elemets echo ${files[*]} # Use a for loop, to display the elements for arrelem in ${files[@]} ;do echo "$arrelem" ; done # Print the number of elements in the array files echo ${#files[@]} # Print the last elements added in the array arrNB_ELEMENTS=${#files[@]} echo ${files[$arrNB_ELEMENTS - 1]} if [ -z $files ]; then echo "The varaiable files doesn't exist" else # Print the number of elements in the array files echo ${#files[@]} fi